MFC捕捉鼠标移动到button上的消息
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC捕捉鼠标移动到button上的消息相关的知识,希望对你有一定的参考价值。
本人在vs2012下利用OnMouseMove捕捉鼠标移动到button上的消息,代码如下:
void CTOOLTESTView::OnMouseMove(UINT nFlags, CPoint point)
CRect rc;
GetDlgItem(IDC_BUTTON1)->GetWindowRect(&rc);
ScreenToClient(&rc);
if (rc.PtInRect(point))
AfxMessageBox((CString)"move");
CFormView::OnMouseMove(nFlags, point);
奈何鼠标移动到按钮上时即使满足if条件也进入不了AfxMessageBox,了解到OnMouseMove好像捕捉不到鼠标移动到button上的消息,我试验了一下Picture Control控件,则可以捕捉到,但是改变Picture Control 的Notify属性为True后,又捕捉不到了。我百度了好多网页论坛亦没找到解决方案,哪位前辈知道这是什么原因啊?如果要捕捉鼠标移动到button上的消息又该如何办?求解救!!!(最好附代码)
使用定时器的办法,比如定时时间间隔为10毫秒,每10毫秒检测一次鼠标的位置(使用API GetCursorPos函数,注意,函数名在这里可能拼错,自己在网上搜一下),这个函数获取的位置坐标是屏幕坐标,判断一下是否在按钮里面就可以了。 参考技术A 那个按钮也是窗口,因此当鼠标移动到按钮上面后WM_MOVE消息就只发送给按钮而不会发送给CTOOLTESTView窗口因此在CTOOLTESTView
以上是关于MFC捕捉鼠标移动到button上的消息的主要内容,如果未能解决你的问题,请参考以下文章