Note that there are some explanatory texts on larger screens.

plurals
  1. POHow do I get a multi line tooltip in MFC
    primarykey
    data
    text
    <p>Right now, I have a tool tip that pops up when I hover over an edit box. The problem is that this tool tip contains multiple error messages and they are all in one long line. I need to have each error message be on its own line. The error messages are contained in a CString with a new line seperating them.</p> <p>My existing code is below.</p> <pre><code>BOOL OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult) { ASSERT(pNMHDR-&gt;code == TTN_NEEDTEXTA || pNMHDR-&gt;code == TTN_NEEDTEXTW); // need to handle both ANSI and UNICODE versions of the message TOOLTIPTEXTA* pTTTA = (TOOLTIPTEXTA*)pNMHDR; TOOLTIPTEXTW* pTTTW = (TOOLTIPTEXTW*)pNMHDR; // TCHAR szFullText[256]; CString strTipText=_T(""); UINT nID = pNMHDR-&gt;idFrom; if (pNMHDR-&gt;code == TTN_NEEDTEXTA &amp;&amp; (pTTTA-&gt;uFlags &amp; TTF_IDISHWND) || pNMHDR-&gt;code == TTN_NEEDTEXTW &amp;&amp; (pTTTW-&gt;uFlags &amp; TTF_IDISHWND)) { // idFrom is actually the HWND of the tool nID = ::GetDlgCtrlID((HWND)nID); } //m_errProjAccel[ch] contains 1 or more error messages each seperated by a new line. if((int)nID &gt;= ID_PROJECTED_ACCEL1 &amp;&amp; (int)nID &lt; ID_PROJECTED_ACCEL1 + PROJECTED_ROWS -1 ) { int ch = nID - ID_PROJECTED_ACCEL1; strTipText = m_errProjAccel[ch]; } #ifndef _UNICODE if (pNMHDR-&gt;code == TTN_NEEDTEXTA) lstrcpyn(pTTTA-&gt;szText, strTipText, sizeof(pTTTA-&gt;szText)/sizeof(pTTTA-&gt;szText[0])); else _mbstowcsz(pTTTW-&gt;szText, strTipText, sizeof(pTTTA-&gt;szText)/sizeof(pTTTA-&gt;szText[0])); #else if (pNMHDR-&gt;code == TTN_NEEDTEXTA) _wcstombsz(pTTTA-&gt;szText, strTipText, sizeof(pTTTA-&gt;szText)/sizeof(pTTTA-&gt;szText[0])); else lstrcpyn(pTTTW-&gt;szText, strTipText, sizeof(pTTTA-&gt;szText)/sizeof(pTTTA-&gt;szText[0])); #endif *pResult = 0; // bring the tooltip window above other popup windows ::SetWindowPos(pNMHDR-&gt;hwndFrom, HWND_TOP, 0, 0, 0, 0, SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE|SWP_NOOWNERZORDER); return TRUE; // message was handled } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload