我正在使用触摸屏并使用Windows 7内置驱动程序(因为它从未促使我安装任何).它工作正常,除了一个小问题.当我触摸屏幕时,它不会发送WM_LBUTTONDOWN,直到我将手指从屏幕上移开.它似乎这样做是为了确定我是否打算按住以模拟WM_RBUTTONDOWN.(另外,我试图禁用按住模拟手势,但它在实践中从不禁用.)
所以我想我会收到WM_TOUCH消息.我发现WM_TOUCH(0x240)也没有发送到我的窗口,直到我的手指离开屏幕.我有点认为完全违背了WM_TOUCH的目的.
在注册接收WM_TOUCH消息之前和之后,我在触摸屏幕后立即收到三条消息:
1. Send: 0x02CC (undocumented tablet messages)
2. Post: 0x011B (undocumented)
3. Send: 0x011A (WM_GESTURENOTIFY)
Run Code Online (Sandbox Code Playgroud)
0x011A是WM_GESTURENOTIFY,我的代码要响应(也许我没有正确响应?).我回复标准响应(使用MS的示例代码)来接收完整通知.
另一件事,我在注册触摸消息时开始获取WM_TOUCH,但我仍然继续获取WM_GESTURENOTIFY消息.根据MS文档,一旦我注册获得WM_TOUCH,我就不再获得手势消息了.
如果有人能告诉我如何立即获得WM_TOUCH消息(例如,当我收到WM_GESTURENOTIFY消息时),而不是在我的手指离开触摸屏之后,我会非常感激.
查看有关触摸事件的教程:
http://msdn.microsoft.com/en-us/gg464991
您想要使用的是函数RegisterTouchWindow,如下所示:
RegisterTouchWindow(handle, 0);
Run Code Online (Sandbox Code Playgroud)
Windows 现在将发送WM_TOUCH消息而不是WM_GESTURE消息到您的窗口。请记住,您必须针对 Windows SDK 版本 7.0 或更高版本进行编译才能使其工作。
| 归档时间: |
|
| 查看次数: |
6802 次 |
| 最近记录: |