入门问题
在哪里可以找到 Windows Native Touch 的示例代码?
万维网上散布着许多示例代码示例。这些示例涵盖了有关在应用程序中使用触摸数据的 Microsoft 技术的大量信息。它们可用于 C/C++ 和 C# 开发。对于各种框架,Win32、UWP / WinUI 等。也许这里引用了最基本的一组示例代码:Windows Touch Samples。
您能否提供对使用 Windows Native Touch 的支持?
Windows 是该设施及其文档的供应商。我们会推荐您参考他们的文档和示例代码。
我应该使用 Windows Native Touch 还是 Wacom 的 API?
提出以下问题很有帮助:您需要进行跨平台开发吗?您想使用触摸输入来进行手势识别吗?您是否也在使用手写笔捕捉文字?图片?在您的应用程序中操作对象?
Wacom 拥有自己的平板电脑、显示器和电脑接口。这些是专门为支持从我们的平板电脑捕获细粒度的笔和触摸数据而创建的。我们的 API 特别适合创意应用。
如果您的目标是为您的应用程序激活一个额外的或可选的界面,使用 WM_TOUCH 和/或操纵器,或 WM_GESTURES,可能会为您提供您想要的附加功能。可以根据 Microsoft 在 Windows 7 中引入的“Good、Better、Best”模型来选择开发人员的复杂程度和责任。文章“选择正确的 Windows Touch 方法”将“Good”描述为响应 WM_GESTURE 消息。“更好”是获得自定义行为,例如对象旋转、平移或缩放支持。“最佳”和最详尽的交互来自 WM_TOUCH 消息的高级使用。
如果您想捕获通过触摸输入的文字,Microsoft 的Pen Input、Ink 和 Recognition API 可能是您所需要的。然而,Wacom Ink SDK for Signature可能恰好适合专门处理签名输入。
如果您的触摸应用程序除了笔捕获之外已经使用我们的 API 来完成“创造性”工作,那么来自Wintab 的 Wacom 触摸 API - 概述或Wacom Feel Multi-Touch - 概述可能是您的最佳方法。
当然,如果您正在进行跨平台开发(即不仅仅是针对 Windows),我们的 API 将是理想的途径。
为什么我没有收到 WM_TOUCH 事件?
虽然 WM_GESTURE 和 WM_POINTER* 事件会自动路由到您的应用程序,但您必须注册 WM_TOUCH 事件。应用程序默认接收手势。除非应用程序使用 RegisterTouchWindow 函数注册 Windows Touch 输入消息,否则 Windows 会创建手势通知(WM_GESTURE 消息)并将其发送到该应用程序窗口。如果应用程序窗口注册接收触摸消息,Windows 触摸输入的通知(WM_TOUCH 消息)将发送到该应用程序窗口。
注册您的应用程序以接收 WM_TOUCH 消息:
BOOL RegisterTouchWindow(HWND hwnd, ULONG ulFlags);
然后,取消注册:
BOOL UnregisterTouchWindow(HWND hwnd);