#mfc #tooltip #statusbar
#mfc #всплывающая подсказка #строка состояния
Вопрос:
Я использую элемент управления CStatusBar, и вот пример попытки настроить всплывающие подсказки:
m_StatusBar.CreateEx(this, SBT_TOOLTIPS);
m_StatusBar.SetIndicators(indicators_oclm, paneCount); //We create the status bar
m_StatusBar.SetPaneInfo(paneDate, ID_INDICATOR_DATE, SBPS_NORMAL, 200);
m_StatusBar.SetPaneInfo(paneProgressOrZoomFactor, ID_INDICATOR_ZOOM, SBPS_NORMAL, 200);
m_StatusBar.SetPaneInfo(panePageBreaks, ID_INDICATOR_PAGE_BREAK, SBPS_NORMAL, 200);
m_StatusBar.SetPaneInfo(paneSlipsPerPage, ID_INDICATOR_SLIPS_COUNT, SBPS_NORMAL, 10);
m_StatusBar.SetPaneInfo(paneForeignLanguageGroup, ID_INDICATOR_FOREIGN_LANGUAGE_GROUP, SBPS_NORMAL, 200);
m_StatusBar.GetStatusBarCtrl().SetTipText(paneSlipsPerPage, _T("Line 1rnLine2"));
Когда я показываю всплывающую подсказку:
Как вы можете видеть, она не показала двух строк:
Строка 1
Строка 2
Я исследовал ее (пример здесь), но безрезультатно.
Обновить
Используя немного другой код, придерживаясь только одной строки для подсказки, которая у меня теперь есть:
Вы можете понять, почему я предпочитаю многострочную. Кроме того, я действительно хочу, чтобы текст на панели гласил «Календарь для использования», а подсказка содержала информацию. Но подсказки отображаются только в том случае, если весь текст не виден. Поэтому мне также нужно, чтобы она всегда была активирована, если это возможно.
Обновить
Я все еще не могу получить многострочную подсказку, но я придумал обходной путь для некоторых из них:
- Получаем ширину для «Используемых календарей»
- Установите ширину панели на это значение
- Обновите текст панели как «Календари для использования» (вызывает уведомление о всплывающей подсказке)
- Задайте текст подсказки
Значок на торте получает поддержку многострочности
Я пытался:
static CToolTipCtrl* pToolTip = NULL;
CToolTipCtrl* ptt = AfxGetModuleState()->m_thread.GetDataNA()->m_pToolTip;
if (ptt != pToolTip) {
// new tooltip
ptt->SetMaxTipWidth(400);
pToolTip = ptt;
}
Но код никогда не вызывается.
Обновить
Я поднял это как запрос функции в Microsoft.