MFC中如何在指定的区域响应鼠标单击事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC中如何在指定的区域响应鼠标单击事件相关的知识,希望对你有一定的参考价值。

参考技术A 在响应onclick事件的方法中做一个判断,根据判断再决定是否执行方法即可

你要的是不响应事件,而不是禁用,那就可以不用disabled,而是使它本来响应的那段代码失效即可。
即:在本来响应的事件代码外层加一个if(条件)判断,默认条件为true,而在你需要禁用的时候,使条件为false即可。
ps:我说的是web开发,不知道你说的图形界面编程是什么,但是大凡编程响应的事件方法体应该可以自己定义吧。

MFC中如何让静态控件响应鼠标移动的消息?

我想在静态文本控件中显示3D图形(用OGRE渲染),于是我自定义了继承CWnd的CMyModule类,并且在CMyModule中已经写了响应WM_MOUSEMOVE消息的处理函数。我在对话框模板中拖入了静态文本控件。然后把这个控件关联我的自定义类,现在已经能在对话框的静态控件中显示3D图像了,现在的问题是当鼠标移动到静态控件时还是不能响应我的消息函数,不能移动图形。本人菜鸟,请高手指点。
我曾经在SDI工程下的View中能显示3D图形并且也能够响应鼠标的移动消息。

你是如何关联CMyModule类的,应该在对话框中,根据控件ID,删除已经创建的静态文件控件,然后用这个ID创建自己的子窗口。
还有,在鼠标的响应函数中,放一些TRACE宏,输出点内容,看看是否的确没有进入鼠标消息响应。
参考技术A 你在你的OnLButtonDown方法里设置个断点,调试下看看鼠标消息是否能得到响应 参考技术B WM_MOUSEMOVE

一般情况下,鼠标移动是不能拖动图形的,一定要和leftbuttondown或 rightbuttondown联合使用。

某个键按下时,同时移动鼠标,同时捕捉这两个消息,然后处理图形移动。追问

在CMyModule中我也已经写了
void CMyModule::OnLButtonDown(UINT nFlags, CPoint point)

// TODO: 在此添加消息处理程序代码和/或调用默认值
m_mouseLast = point;
CWnd::OnLButtonDown(nFlags, point);

追答

在自己的类里面,得到消息后要自己处理,就是重新画图。不能用缺省的处理。

本回答被提问者采纳

以上是关于MFC中如何在指定的区域响应鼠标单击事件的主要内容,如果未能解决你的问题,请参考以下文章

MFC的静态控件怎么响应鼠标事件呀。。要详细一点的。。我菜鸟,谢谢

MFC中如何让静态控件响应鼠标移动的消息?

MFC 中,按钮和其他(比如:图片框、列表框)控件怎么响应鼠标移动消息?

MFC怎么为一幅图片添加鼠标点击事件?

QT怎么设置单元格不响应鼠标单击事件?

MFC当鼠标移动到某对象范围的上方时触发的事件是啥?