windows-7 - WM_TOUCH 不会立即与触地事件一起发送

标签 windows-7 touch

我正在使用触摸屏并使用 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)

0x011A 是 WM_GESTURENOTIFY,我的代码要响应(也许我没有正确响应?)。我用标准回复(使用 MS 的示例代码)回复以接收完整通知。

另一件事,当我注册触摸消息时,我开始收到 WM_TOUCH,但我也继续收到 WM_GESTURENOTIFY 消息。根据 MS 文档,一旦我注册获得 WM_TOUCH,我就不再收到手势消息。

如果有人能告诉我如何立即获取 WM_TOUCH 消息(例如,当我收到 WM_GESTURENOTIFY 消息时),而不是在我让手指离开触摸屏之后,我将不胜感激。

最佳答案

我几乎遇到了同样的问题并通过使用解决了它:

RegisterTouchWindow( hWnd, TWF_WANTPALM );

关于windows-7 - WM_TOUCH 不会立即与触地事件一起发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7560334/

相关文章:

batch-file - %CMDCMDLINE% 特殊变量被神奇地改变,尽管没有赋值

python - 最小化 Tk 窗口

windows - 不同 Windows 上无法识别的属性 'multipleSiteBindingsEnabled' 问题

c - 为什么在 C 中使用错误的格式说明符会使我的程序在 Windows 7 上崩溃?

gradle - 使用 gradle 对文件运行 touch 命令

jquery on click 不适用于触摸

windows - 如何在非触控 Windows 上测试支持触控的应用程序?

c# - 适用于 .NET 开发的 Windows 7

android - 如何创建一个不规则形状的图像按钮,其中图像的透明部分不可点击?

javascript - 如何使用 Hammer.js Touch Emulator 编辑文本输入字段?