Мне удалось превратить \ n разделенную подсказку в многострочную подсказку, используя следующий код в обработчике TTN_NEEDTEXT
Для DevStudio 6
CToolTipCtrl* pToolTip = AfxGetThreadState()->m_pToolTip;
pToolTip->SetMaxTipWidth(SHRT_MAX);
Вы должны звонить снова каждый раз, когда вызывается TTN_NEEDTEXT
, или он не будет зависать.
Я нашел этот трюк, читая код из http://www.codeproject.com/KB/list/CListCtrl_ToolTip.aspx
ПРИМЕЧАНИЕ: код на самом деле выполняет следующее, но он не скомпилируется в VS6, так как ModuleThreadState не имеет члена m_pToolTip в VS6 (я не пробовал следующее в VS2005 +, но я предполагаю, что он будет работать там)
BOOL CListCtrl_EnableToolTip::OnToolNeedText(UINT id, NMHDR* pNMHDR, LRESULT* pResult)
{
...
// Break tooltip into multiple lines if it contains newlines (/n/r)
CToolTipCtrl* pToolTip = AfxGetModuleThreadState()->m_pToolTip;
if (pToolTip)
pToolTip->SetMaxTipWidth(SHRT_MAX);
...
}