在VC6.0中,默认情况下,鼠标移动到对话框的控件上时,是不会显示控件的提示信息的。下面将讨论实现显示话框中的控件的提示的步骤。
1、在对话框初始化时,开始控件的信息提示。即在OnInitDialog函数中添加以下代码:
EnableToolTips(TRUE);
2、在对话框窗口的消息映射中添加对TTN_NEEDTEXT消息的处理。
其中,OnToolTipText是响应TTN_NEEDTEXT消息的函数。
ON_NOTIFY_EX(TTN_NEEDTEXT, 0, OnToolTipText)
3、声明消息响应函数。
afx_msg BOOL OnToolTipText(UINT nID, NMHDR* pNMHDR, LRESULT* pResult);
4、定义消息响应函数。
BOOL CButtonToolTipsDlg::OnToolTipText(UINT id, NMHDR* pNMHDR, LRESULT* pResult)
{
TOOLTIPTEXT* pTTT = (TOOLTIPTEXT*)pNMHDR;
UINT nID = pNMHDR->idFrom;
if (pTTT->uFlags & TTF_IDISHWND)
{
nID = ::GetDlgCtrlID((HWND)nID);
if (0 != nID)
{
// 获得控件对应的提示信息
pTTT->lpszText = MAKEINTRESOURCE(nID);
pTTT->hinst = AfxGetResourceHandle();
return TRUE;
}
}
return FALSE;
}
{
TOOLTIPTEXT* pTTT = (TOOLTIPTEXT*)pNMHDR;
UINT nID = pNMHDR->idFrom;
if (pTTT->uFlags & TTF_IDISHWND)
{
nID = ::GetDlgCtrlID((HWND)nID);
if (0 != nID)
{
// 获得控件对应的提示信息
pTTT->lpszText = MAKEINTRESOURCE(nID);
pTTT->hinst = AfxGetResourceHandle();
return TRUE;
}
}
return FALSE;
}
5、为控件添加提示信息。
在Resources中的String Table为控件添加相应的提示信息。
6、运行程序。
运行程序,把鼠标移动到控件上,就能看到控件的提示信息。