изменить текст CMFCRibbonStatusBar, но отображаются первый символ и три точки (например, «C …»)

В моем проекте (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...

в чем моя проблема?

2

Решение

После того, как вы создали свой 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"));
4

Другие решения

Читайте спецификации CMFCRibbonStatusBarPane :: SetAlmostLargeText

Библиотека вычисляет размер текста, который lpszAlmostLargeText
определяет и изменяет размеры панели соответственно. Текст будет обрезан
если он все еще не помещается на панели.

0

Рассмотрите возможность перехода в информационный режим, если вы хотите сохранить текст строки состояния вручную:

m_wndStatusBar.SetInformation(_T("Connecting"));

Чтобы вернуться к автоматическим сообщениям о состоянии, используйте:

m_wndStatusBar.SetInformation(NULL);
0
По вопросам рекламы [email protected]