使用 MFC 的 OnMouseWheel 事件
Posted
技术标签:
【中文标题】使用 MFC 的 OnMouseWheel 事件【英文标题】:OnMouseWheel event with MFC 【发布时间】:2012-03-11 04:31:17 【问题描述】:我在使用 ON_WM_MOUSEWHEEL 事件和 MFC 时遇到了一些问题。处理事件的函数确实会被调用,但不会在滚动时调用,只是在“捏”触摸板时调用。它应该表现得像这样吗?
我正在使用 Visual Studio 2010 和 Windows 7。
【问题讨论】:
由于触控板实际上并不包含滚轮,您还期待什么?我在这里是认真的 - 您希望哪些操作会触发 WM_MOUSEWHEEL 消息? 您的意思是在滚动鼠标上使用滚轮时不会发送WM_MOUSEWHEEL
消息?因为它对我有用。
我正在使用触摸板,它允许我用两根手指滚动页面。在我的应用程序中执行此操作时,光标会更改以指示我正在垂直滚动。我可以在 java AWT 中使用 mouseWheelListener 来捕获这个事件,所以在 MFC 中它不应该是可能的,这似乎很奇怪。
【参考方案1】:
我注意到一些触摸板驱动程序使用 WM_VSCROLL 消息实现滚动,但是由于 java AWT 的 mouseWheelListener 正在工作,我的建议是:
打开 Spy++ 并验证是否正在发布 WM_MOUSEWHEEL 消息。
如果没有发布消息,控件可能没有焦点。
如果正在发布消息,则可能是控件尝试接收消息的方式存在问题。在这种情况下,向我们展示消息映射可能会有所帮助。
【讨论】:
【参考方案2】:查看WM_TOUCH 消息。
【讨论】:
不,这需要特殊初始化。 WM_GESTURE 会是一个更好的猜测。以上是关于使用 MFC 的 OnMouseWheel 事件的主要内容,如果未能解决你的问题,请参考以下文章