afx_msg BOOL OnToolTipText(UINT nID, NMHDR* pNMHDR, LRESULT* pResult);//Added,2006.11.26      ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTA,0,0xFFFF,OnToolTipText)
ON_NOTIFY_EX_RANGE(TTN_NEEDTEXTW,0,0xFFFF,OnToolTipText)
END_MESSAGE_MAP()BOOL CMainFrame::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;
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);
}
switch(nID)
{
case ID_FILE_NEW:
     strTipText= "新建";
 break;
case ID_FILE_OPEN:
     strTipText= "打开";
 break;
    case ID_FILE_SAVE:
     strTipText= "保存";
 break;
case ID_FILE_PRINT:
 strTipText= "打印";
 break;
case  ID_SETTING_COM:
 strTipText= "选择串口";
 break;
case ID_COM_READ:
 strTipText= "读终端数据";
 break;
case ID_COM_WRITE:
 strTipText= "向终端写入数据";
 break;
case ID_APP_ABOUT:
 strTipText= "向终端写入数据";
 break;  

default:
break;

}
/* if(nID == ID_FILE_NEW)
{
strTipText= "你好";
//SendMessage(WM_SETMESSAGESTRING, 0, (LPARAM)(LPCTSTR)strTipText);
} else if (nID != 0) // will be zero on a separator
{
// don’t handle the message if no string resource found
if (AfxLoadString(nID, szFullText) == 0)
return FALSE; // this is the command id, not the button index
AfxExtractSubString(strTipText, szFullText, 1, 'n');
}
*/
#ifndef _UNICODE
if (pNMHDR->code == TTN_NEEDTEXTA)
lstrcpyn(pTTTA->szText, strTipText, 10);
else
_mbstowcsz(pTTTW->szText, strTipText, 10);
#else
if (pNMHDR->code == TTN_NEEDTEXTA)
_wcstombsz(pTTTA->szText, strTipText, 10);
else
lstrcpyn(pTTTW->szText, strTipText,10);
#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);
strTipText.Empty();
return TRUE;   // message was handled
}