Снова отвечаю на мой вопрос ...
Я обошел проблему, добавив и удалив ярлык вместо того, чтобы пытаться изменить текст.
Код для добавления метки:
CMFCRibbonLabel* pLabel = new CMFCRibbonLabel(description);
pLabel->SetID(ID_MYLABEL); // ID is 0 by default
m_wndStatusBar.AddDynamicElement(pLabel);
m_wndStatusBar.RecalcLayout();
m_wndStatusBar.RedrawWindow();
Обратите внимание, что я устанавливаю идентификатор, чтобы позже я мог позвонить CMFCRibbonStatusBar::RemoveElement()
с этим идентификатором.
Вызовы RecalcLayout()
и RedrawWindow()
необходимы для того, чтобы изменения были видны.
Код для удаления этикетки:
if(m_wndStatusBar.RemoveElement(ID_MYLABEL))
{
m_wndStatusBar.RecalcLayout();
m_wndStatusBar.RedrawWindow();
}