В моем проекте (VC ++, MFC, 2010) я хочу изменить текст строки состояния.
переменная:
CMFCRibbonStatusBar m_wndStatusBar;
код:
{
CString strTitlePane1=_T("");
m_wndStatusBar.AddElement(new CMFCRibbonStatusBarPane(ID_STATUSBAR_PANE1, strTitlePane1,TRUE), strTitlePane1);
m_wndStatusBar.GetElement(0)->SetText(_T("Connecting"));
}
но я вижу в строке состояния: C...
в чем моя проблема?
После того, как вы создали свой CMFCRibbonStatusBarPane
, вам нужно установить ожидаемый максимальный размер текста, вызвав CMFCRibbonStatusBarPane::SetAlmostLargeText
.
Например:
CString strTitlePane1=_T("");
CMFCRibbonStatusBarPane* pPane = new CMFCRibbonStatusBarPane(ID_STATUSBAR_PANE1,
strTitlePane1,TRUE);
pPane.SetAlmostLargeText(_T("Connecting"));
m_wndStatusBar.AddElement(pPane, strTitlePane1);
m_wndStatusBar.GetElement(0)->SetText(_T("Connecting"));
Читайте спецификации CMFCRibbonStatusBarPane :: SetAlmostLargeText
Библиотека вычисляет размер текста, который lpszAlmostLargeText
определяет и изменяет размеры панели соответственно. Текст будет обрезан
если он все еще не помещается на панели.
Рассмотрите возможность перехода в информационный режим, если вы хотите сохранить текст строки состояния вручную:
m_wndStatusBar.SetInformation(_T("Connecting"));
Чтобы вернуться к автоматическим сообщениям о состоянии, используйте:
m_wndStatusBar.SetInformation(NULL);