使用触摸板时没有鼠标滚轮事件

时间:2017-11-07 15:36:12

标签: windows mousewheel touchpad

当我的程序在笔记本电脑上运行以及我使用触摸板滚动时,我在检索鼠标滚轮事件时遇到了麻烦。

我最初使用DirectInput来捕获输入事件,但我已经在这里和那里读到DirectInput无法处理触摸板发送的滚动事件。

我做了一些额外的研究并且忽略了这个老话题:C++ DirectInput Mouse Scroll Wheel with a Laptop Touchpad

所以我试图使用PeekEvent循环来捕获我的鼠标输入。使用真正的鼠标时,一切都很好,但当我切换到我的笔记本电脑时,ta-da:没有收到WM_MOUSEWHEEL事件。 (这家伙预言了) 我也没有收到任何WM_VSCROLL或WM_GESTURE事件。

另外我已经基于wxWidgets制作了另一个程序,在这种情况下,鼠标滚轮事件是由应用程序引起的。我已经解析了源代码以查看wxWidgets如何检索Windows事件,除非我遗漏了某些内容,否则它似乎与我的代码完全相同。

是否有某种巫术魔术技巧来捕捉触控板产生的鼠标滚轮事件? 如果需要,我可以提供有关我的代码的更多信息。

由于

编辑:

我做了一些额外的调试来查找正在进行的操作:

首先,我错了说我根本没有抓住WM_MOUSEWHEEL事件。事实上,在WindowProc Callback中,我实际上收到了轮子事件。

但是,PeekMessage调用不会返回任何事件。

我最终可以改变我收集鼠标事件的方式直接在WindowProc回调中完成它,但是我需要做一些奇怪的事情只是为了处理一些应该使用真正的鼠标同样工作的东西或触摸板。

0 个答案:

没有答案