我正在使用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行
我已经对其进行了研究(例如here),但无济于事。
使用略有不同的代码,仅保留一行提示信息:
您可以看到为什么我更喜欢多行。另外,我真的希望窗格文本显示为“要使用的日历”,并提示该信息。但是提示仅在所有文本都不可见的情况下显示。因此,如果可能的话,我还需要使其始终处于激活状态。
我仍然无法获得多行,但是我想出了一些解决方法:
蛋糕上的图标正在获得多行支持
我尝试过:
static CToolTipCtrl* pToolTip = NULL;
CToolTipCtrl* ptt = AfxGetModuleState()->m_thread.GetDataNA()->m_pToolTip;
if (ptt != pToolTip) {
// new tooltip
ptt->SetMaxTipWidth(400);
pToolTip = ptt;
}
但是代码永远不会被调用。
我已将此作为feature request提出给Microsoft。