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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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小程序003------MFC使用WebBrowser组件,在对话框中创建滚动视图,动态创建一个静态文本控件并设置鼠标单击的消息响应

MFC GUI自定义控件:如何绘制光标更新以响应鼠标移动?

MFC中可以通过鼠标拖拉更改大小的单文档,如何使窗口上控件在窗口改变大小的过程中会随之相对应的移动

如何在MFC中用鼠标画直线