问题描述
- MFC中静态文本框获取鼠标移动到按钮上的消息
- MFC对话框运用程序,对话框上有多个按钮和静态文本框,鼠标移动到不同按钮上时静态文本框输出不同字符串,这个功能怎么实现?我刚学MFC,是个小白,希望各位大神不嫌麻烦,讲详细一点。谢谢!
解决方案
1.重载PreTranslateMessage函数
2.实现如下代码
BOOL CMouseDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if(pMsg->hwnd == GetDlgItem(IDC_BUTTON1)->GetSafeHwnd() && pMsg->message == WM_MOUSEMOVE)
{
CString windowText;
GetDlgItem(IDC_BUTTON1)->GetWindowText(windowText); //得到按钮文本
GetDlgItem(IDC_STATIC1)->SetWindowText(windowText); //显示到静态文本框
}else if(pMsg->hwnd == GetDlgItem(IDC_BUTTON2)->GetSafeHwnd() && pMsg->message == WM_MOUSEMOVE)
{
CString windowText;
GetDlgItem(IDC_BUTTON2)->GetWindowText(windowText);
GetDlgItem(IDC_STATIC1)->SetWindowText(windowText);
}
return CDialog::PreTranslateMessage(pMsg);
}
解决方案二:
你的意思是输出不同的文字还是?
解决方案三:
你的意思是输出不同的文字还是?
解决方案四:
处理 WM_MOUSEMOVE 消息
https://msdn.microsoft.com/zh-cn/library/windows/desktop/ms645616(v=vs.85).aspx