在 MFC 中,你可以通过重写 OnToolHitTest 来自定义工具提示的行为。这个函数在鼠标移到窗口的一个子窗口上时被调用,你可以返回一个标识符,用于标识鼠标停留的控件,并在需要时提供工具提示的文本。
以下是一个简单的例子:
BOOL CMyWnd::OnToolHitTest(CPoint point, TOOLINFO* pTI) const {
// 假设你有一个控件的标识符为ID_MY_CONTROL
int nHit = 1; // 假设ID_MY_CONTROL对应的标识符为1
// 在此添加更多的条件来判断鼠标是否悬停在你感兴趣的控件上
if (nHit == 1) {
// 设置工具提示信息
pTI->hwnd = m_hWnd;
pTI->uId = (UINT_PTR)GetDlgItem(ID_MY_CONTROL)->m_hWnd;
pTI->lpszText = _T("This is a tooltip for My Control");
return TRUE;
}
// 如果鼠标没有悬停在感兴趣的控件上,返回 FALSE
return FALSE;
}
在这个例子中,ID_MY_CONTROL 是你想要添加工具提示的控件的标识符。当鼠标悬停在这个控件上时,OnToolHitTest 会返回 TRUE,并填充 TOOLINFO 结构体,提供工具提示信息。
请注意,具体的实现可能会根据你的应用程序的结构和需求有所不同。在实际应用中,你可能需要根据鼠标位置、控件位置等因素来判断是否应该显示工具提示以及显示什么内容。
转载请注明出处:http://www.pingtaimeng.com/article/detail/23526/MFC/CWnd