用CMFECToolTip类可以实现鼠标提示功能。
新建一个基于对话框的程序InfoTip。
添加几个控件。比如一个静态文本,一个编辑框,CComboxbox控件和一个按钮。
ID分别为IDC_TEXT1,IDC_EDIT1,IDC_COMBO1,IDC_BUTTON1.
给对话框增加CMFECToolTip类型的成员变量m_toolTip.
将所有需要显示提示信息的控件信息告诉CMFECToolTip对象.
在OnIiniDialog()函数中添代码
Bool CinfoTipDlg::OnInitDialog();
{
.........
//TODO:Add extra initalizetion here
m_toolTip.Create(this);
CStringArray straInfo;
straInfo.RemoveAll();
straInfo.Add("Button Control");
m_toolTip.AddControlInfo(IDC_BUTTON1,straInfo,RGB(0,0,255),RGB(255,0,129));
straInfo.RemoveAll();
straInfo.Add("Text Control");
m_toolTip.AddControlInfo(IDC_TEXT1,straInfo,RGB(255,255,0));
straInfo.RemoveAll();
straInfo.Add("Edit Control");
m_toolTip.AddControlInfo(IDC_EDIT1,straInfo,RGB(255,255,0));
straInfo.RemoveAll();
straInfo.Add("ComBox Control");
straInfo.Add("Data in the list:");
straInfo.Add("Data1");
straInfo.Add("data2");
m_toolTip.AddControlInfo(IDC_COMBO1,straInfo,RGB(192,0,192));
return TRUE;//return TRUE unless you set the focus to a control
}
然后在对话框的PreTranslateMessage(MSG *pMsg)函数中捕捉WM_MOUSEMOVE消息
BOOL CInfoTipDlg:
reTranslateMessage(MSG* pMsg)
{
if(pMsg->message==WM_MOUSEMOVE)
{
POINT pt=pMsg->pt;
ScreenToClient(&pt);
m_toolTip.ShowToolTip((CPoint)pt);
}
return CDialog:
reTranslateMessage(pMsg);
}
你试试,可能有打错的地方,你改一改就可以了。