में एक बहु लाइन टूलटिप कैसे प्राप्त करूं, अभी मेरे पास एक टूल टिप है जो एक संपादन बॉक्स पर होवर करते समय पॉप अप करता है। समस्या यह है कि इस टूल टिप में कई त्रुटि संदेश हैं और वे सभी एक लंबी लाइन में हैं। मुझे प्रत्येक त्रुटि संदेश अपनी लाइन पर होना चाहिए। त्रुटि संदेश एक सीएसटींग में निहित एक नई लाइन के साथ निहित हैं।मैं एमएफसी
मेरा मौजूदा कोड नीचे है।
BOOL OnToolTipText(UINT, NMHDR* pNMHDR, LRESULT* pResult)
{
ASSERT(pNMHDR->code == TTN_NEEDTEXTA || pNMHDR->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->idFrom;
if (pNMHDR->code == TTN_NEEDTEXTA && (pTTTA->uFlags & TTF_IDISHWND) ||
pNMHDR->code == TTN_NEEDTEXTW && (pTTTW->uFlags & 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 >= ID_PROJECTED_ACCEL1 && (int)nID < ID_PROJECTED_ACCEL1 + PROJECTED_ROWS -1) {
int ch = nID - ID_PROJECTED_ACCEL1;
strTipText = m_errProjAccel[ch];
}
#ifndef _UNICODE
if (pNMHDR->code == TTN_NEEDTEXTA)
lstrcpyn(pTTTA->szText, strTipText, sizeof(pTTTA->szText)/sizeof(pTTTA->szText[0]));
else
_mbstowcsz(pTTTW->szText, strTipText, sizeof(pTTTA->szText)/sizeof(pTTTA->szText[0]));
#else
if (pNMHDR->code == TTN_NEEDTEXTA)
_wcstombsz(pTTTA->szText, strTipText, sizeof(pTTTA->szText)/sizeof(pTTTA->szText[0]));
else
lstrcpyn(pTTTW->szText, strTipText, sizeof(pTTTA->szText)/sizeof(pTTTA->szText[0]));
#endif
*pResult = 0;
// bring the tooltip window above other popup windows
::SetWindowPos(pNMHDR->hwndFrom, HWND_TOP, 0, 0, 0, 0,
SWP_NOACTIVATE|SWP_NOSIZE|SWP_NOMOVE|SWP_NOOWNERZORDER);
return TRUE; // message was handled
}
मैं \ n का उपयोग कर रहा था। मैंने इसे \ r \ n में बदल दिया लेकिन ऐसा लगता है कि यह मदद नहीं करता है। – JonDrnek
मैंने पाया कि टूलटिप्स मान्य लाइन ब्रेक के रूप में \ n, \ r \ n, और \ r स्वीकार करते हैं। मैं उन्हें एक ही टूलटिप में मिश्रण करने में सक्षम हूं। यह सॉफ़्टवेयर में बग/असंगतताओं के कारण है जिसे हम ठीक करेंगे, लेकिन यह काम करता है। – Aardvark
lpszText का उपयोग करने के लिए आप ऐसा कर सकते हैं: '' 'pTTT-> lpszText = const_cast (static_cast (strTipText));' '' –
Mangs