MFC捕捉鼠标移动到button上的消息

本人在vs2012下利用OnMouseMove捕捉鼠标移动到button上的消息,代码如下:voidCTOOLTESTView::OnMouseMove(UINTnFla... 本人在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上的消息又该如何办?求解救!!!(最好附代码)
展开
 我来答
归悦欣cf
推荐于2017-11-27 · TA获得超过1442个赞
知道大有可为答主
回答量:4250
采纳率:60%
帮助的人:1284万
展开全部
按钮也是窗口,因此当鼠标移动到按钮上面后WM_MOVE消息就只发送给按钮而不会发送给CTOOLTESTView窗口因此在CTOOLTESTView::OnMouseMove里面是捕捉不到按钮上面的鼠标移动消息的,Picture Control控件在Notify属性为FALSE的情况下鼠标消息是可以穿透的,而按钮控件没有这个功能。如果一定要使用按钮控件,可以在CTOOLTESTView
使用定时器的办法,比如定时时间间隔为10毫秒,每10毫秒检测一次鼠标的位置(使用API GetCursorPos函数,注意,函数名在这里可能拼错,自己在网上搜一下),这个函数获取的位置坐标是屏幕坐标,判断一下是否在按钮里面就可以了。
weiguangmei200
2015-11-25
知道答主
回答量:6
采纳率:0%
帮助的人:3万
展开全部
那个按钮也是窗口,因此当鼠标移动到按钮上面后WM_MOVE消息就只发送给按钮而不会发送给CTOOLTESTView窗口因此在CTOOLTESTView
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式