Я использую элемент управления 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 1\r\nLine2"));
Когда я отображаю всплывающую подсказку:
Как видите, он не показал две строки:
Строка 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.