为了对界面功能有一个详细的描述而又不将这些描述语言写到界面上,此时我们就需要鼠标提示。当鼠标放到某一个控件上时,会弹出一个小的提示框来说明该控件的作用。添加鼠标提示的步骤可分为如下几步:
1.在类中声明一个CToolTipCtrl类型的对象
class CMyDlg : public CDialog
{
public:
CToolTipCtrl m_tip;//加入提示控件
}
2.在构造函数或初始化函数中对该对象进行设置并激活提示功能。
BOOL CMyDlg::OnInitDialog()
{
EnableToolTips(TRUE);//使提示控件有效
m_tip.Create(this,TTS_ALWAYSTIP);//创建,指定父窗口及显示方式
m_tip.Activate(TRUE);//激活控件
}
3.添加消息映射
// MyDlg.cpp : implementation file
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
ON_NOTIFY_EX(TTN_NEEDTEXT,0,SetTipText)//SetTipText消息处理函数的地址
END_MESSAGE_MAP()
4.添加消息处理函数
首先在类中声明该函数
class CMyDlg : public CDialog
{
public:
CToolTipCtrl m_tip;//加入提示控件
BOOL SetTipText(UINT id, NMHDR *pTTTStruct, LRESULT *pResult);//该函数传入参数的类型是固定的,可参考MSDN
}
然后添加该函数,在函数在,针对不同控件的ID,可以设置不同的提示信息
BOOL CEasySetup1Dlg::SetTipText(UINT id, NMHDR *pTTTStruct, LRESULT *pResult)
{
TOOLTIPTEXT *pTTT = (TOOLTIPTEXT *)pTTTStruct;
UINT nID =pTTTStruct->idFrom; //得到相应窗口ID,有可能是HWND
if (pTTT->uFlags & TTF_IDISHWND) //表明nID是否为HWND,默认情况下nID是HWND类型,当然你也可以用成员函数
//SetToolInfo来设置
{
nID = ::GetDlgCtrlID((HWND)nID);//从HWND得到ID值,当然你也可以通过HWND值来判断
switch(nID)
{
case(IDC_CHECK_All):
strcpy(pTTT->lpszText,"选择列表中的全部软件");//设置
return TRUE;
break;
case(IDC_EDIT_InstInfo):
strcpy(pTTT->lpszText,"安装信息");//设置
return TRUE;
break;
default:
return TRUE;
break;
}
}
return(FALSE);
}
通过以上设置,你就可以完成自己的鼠标提示了。