Windows 触控手势概述

本部分介绍 Windows 触控支持的各种手势。

手势概述

Windows 触控支持多个手势,支持单个和多个触点。 下图说明了 Windows 7 中支持的各种手势。

显示 Windows 7 中 Windows 触控支持的手势的插图

注意

当触点彼此距离较远时,某些识别器在解释具有多个触点的手势时更为可靠。

旧版支持

对于旧版支持,默认笔势处理程序会将某些手势映射到以前版本的 Windows 中使用的 Windows 消息。 下表概述了手势如何映射到旧消息。

手势 说明 已生成消息 ()
平移 平移手势映射到使用滚轮。 WM_VSCROLL
WM_HSCROLL
长按 长按手势映射到右键单击鼠标。 WM_RBUTTONDOWN
WM_RBUTTONUP
缩放 缩放手势触发类似于按住 Ctrl 键的消息,并旋转鼠标滚轮进行滚动。 wParam 中设置了MK_CONTROL的WM_MOUSEWHEEL

解释 Windows 触控手势

应用程序开发人员可以通过处理来自应用程序的 WndProc 函数的 WM_GESTURE 消息来解释 Windows 触控手势。 处理此消息后,可以检索描述手势的 GESTUREINFO 结构。 GESTUREINFO 结构将具有取决于手势类型的各种信息。

通过将手势信息结构的句柄传递给 GetGestureInfo 函数来检索 GESTUREINFO 结构。

以下标志指示手势的各种状态,并存储在 dwFlags 中

名称 说明
GF_BEGIN 0x00000001 手势正在启动。
GF_INERTIA 0x00000002 手势触发了惯性。
GF_END 0x00000004 手势已完成。

注意

大多数应用程序应忽略 GID_BEGINGID_END 并将其传递给 DefWindowProc。 默认笔势处理程序使用这些消息。 当第三方应用程序使用 GID_BEGINGID_END 消息时,应用程序行为未定义。

下表指示手势的各种标识符。

名称 说明
GID_BEGIN 1 手势正在启动。
GID_END 2 手势即将结束。
GID_ZOOM 3 缩放手势。
GID_PAN 4 平移手势。
GID_ROTATE 5 旋转手势。
GID_TWOFINGERTAP 6 双指点击手势。
GID_PRESSANDTAP 7 按下和点击手势。

注意

GID_PAN手势具有内置的惯性。 在平移手势结束时,操作系统会创建其他平移手势消息。

GESTUREINFO 结构成员 ptsLocationullArguments 使用 POINTS 结构) 以及有关手势的其他信息(具体取决于手势)指定点 (。 下表列出了与每种手势类型关联的值。

手势 ID ullArguments ptsLocation
GID_ZOOM 指示两个点之间的距离。 指示缩放的中心。
GID_PAN 指示两个点之间的距离。 指示平移的当前位置。
GID_ROTATE 如果设置了 GF_BEGIN 标志,则指示旋转角度。 否则,这是自旋转开始以来的角度变化。 这是为指示旋转方向而签名的。 使用 GID_ROTATE_ANGLE_FROM_ARGUMENTGID_ROTATE_ANGLE_TO_ARGUMENT 宏获取和设置角度值。 这指示旋转的中心,即目标对象旋转的固定点。
GID_TWOFINGERTAP 指示两根手指之间的距离。 指示两根手指的中心。
GID_PRESSANDTAP 指示第一根手指与第二根手指之间的增量。 此值存储在 ullArguments 成员的下 32 位的 POINT 结构中。 指示第一根手指向下放置的位置。

Windows 触控手势