摘自网络:
方法一: 利用CWnd本身自身支持的tooptip来实现,这种方法适用给控件增加tooltip,非常方便和简单方法如下: 1、在窗口中增加消息映射ON_NOTIFY_EX(TTN_NEEDTEXT, 0, SetTipText) SetTipText是个回调函数,名字叫什么无所谓,符合原型就行了,原型下面会说。 2、EnableToolTips(TRUE),使用这个方法调用这个函数是必不可少的.建议在CDialog::OnInitDialog调用。
3、在窗口中增加一个函数用于动态提供显示内容,其原型为 BOOL SetTipText(UINT id, NMHDR *pTTTStruct, LRESULT *pResult),下面的代码可以根据传入的参数判定应该显示的内容。 BOOL CWndYour::SetTipText(UINT id, NMHDR *pTTTStruct, LRESULT *pResult) { TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pTTTStruct; UINT nID = pTTTStruct->idFrom; //得到相应窗口ID,有可能是HWND //表明nID是否为HWND if (pTTT->uFlags & TTF_IDISHWND) { //从HWND得到ID值,当然你也可以通过HWND值来判断 nID = ::GetDlgCtrlID((HWND)nID); if (NULL == nID) return FALSE;
switch(nID) { case(IDC_YOUR_CONTROL1) strcpy(pTTT->lpszText, your_string1); break;