轻扫手势
Windows Vista 包括一组八个基本的 轻扫手势。 轻扫是与滚动作和命令关联的快速线性笔移动。
轻扫详细信息
轻弹功能为用户提供了与平板电脑电脑交互的新方式,允许通过快速手势与笔执行常见作。 轻弹与普通用户作(如左右点击、滚动和墨迹书写)共存,并且不会中断。
轻扫 是一种单向笔势,它要求用户在快速闪烁的动作中联系数字化器。 轻弹的特点是高速和高直线度。 轻弹由其方向标识。 轻弹可以采用与红衣主教方向和辅助指南针方向对应的八个方向进行。
或 轻扫作 动作是响应轻弹时执行的作或快捷方式。 轻弹映射到作。 下图显示了对应于其轻弹动作的八个笔形图。
显示笔势图插图
当用户将笔移到平板电脑的数字化器上时,硬件会生成将笔数据包路由到平板电脑平台的笔输入子系统。 通常,如果笔用作鼠标的替代项,则笔输入子系统将采用这些笔数据包并将其(可能进行修改)发送给负责处理鼠标输入的 Windows 组件 User32。 如果在墨迹书写图面上使用笔,则会呈现墨迹,而不是生成鼠标数据包。
轻弹检测例程在笔输入子系统中实现。 轻弹检测从触笔开始,一直持续到以下两者:
收到的数据包序列确定不是轻扫或
出现 pen-up。
在发生轻弹检测时,笔数据包被保留,不会发送到系统。 必须执行此作,因为发送数据包可能会干扰执行的轻扫作。 例如,在映射到复制作的轻扫期间发送数据包会消除所选内容,这意味着在发送作时不会复制任何内容。
当数据包流入笔输入子系统时,轻弹检测例程会计算所执行的动作的长度、速度、时间和曲率的指标。 到达的每个数据包后,检测例程会更新每个指标。 一旦任何指标超出将构成轻弹的指标,轻弹检测就会结束,并且数据包通过发送。
检测到轻弹的位置
轻扫手势可以通过拖动通常相当缓慢地执行的事实实现。 用户必须首先以拖动的起点为目标,执行拖动,然后将终点定位到终点。 通常,这需要很长时间才能获得轻弹资格。 但是,在墨迹书写图面上,快速笔划将有资格为轻弹频繁发生:交叉“t”是一个常见示例。 因此,默认情况下,轻弹检测在墨迹书写图面上关闭,并打开系统范围。
焦点问题
检测到轻弹后,一系列事件就会开始,最终导致系统执行特定作,以响应发生的轻弹。 首先,笔输入子系统中的检测例程确定应发送到哪个窗口。 这通常是具有焦点的窗口,但存在例外情况。 对于滚动闪烁,该轻弹将发送到发生轻弹的窗口。 请注意,这不一定是具有焦点的窗口。 当轻扫发送到没有焦点的窗口时,焦点不会更改为该窗口。
轻扫作
确定目标窗口后,该窗口可能会根据默认或编程的事件行为处理轻扫本身。 应用程序可以根据应用程序和轻弹的方向和位置响应最适合的作。 例如,在映射应用程序中,上下轻扫可能会放大或缩小,而不是垂直滚动,就像默认行为一样。
若要提醒应用程序发生轻扫,则会向应用程序发送一条窗口消息。 此窗口消息包含轻弹的起点和轻弹的方向。 如果应用程序处理此窗口消息,则笔输入子系统不会采取进一步作。
检测到轻弹后,屏幕上会显示表示轻扫作的视觉反馈。 此反馈有两个用途。 首先,它确认用户轻弹成功。 其次,它会提醒用户执行了哪些作,帮助用户将轻扫方向与其关联的作连接起来。
轻弹反馈由两个部分组成:表示作的图标和包含作名称的标签。 该标签显示在图标下方。 检测到轻扫后立即显示反馈。 尽管应用程序可以通过处理轻扫窗口消息来自定义其行为以响应轻扫,但应用程序无法禁用或修改轻扫反馈。
预计大多数应用程序不会轻扫感知,因此不会处理上述窗口消息。 如果未处理消息,则笔输入子系统将采取进一步作。 首先,它会查找与检测到的轻弹方向关联的作。 接下来,它将执行步骤(下表中所述),使目标窗口执行此作。 对于许多轻扫作,这涉及到发送应用程序命令,但实现的某些作不会。
处理应用程序命令
应用程序应响应可能分配给轻扫手势的任何应用程序命令。 如果应用程序无法响应 WM_TABLET_FLICK 消息,则 Windows Vista 会发送适用的 WM_APPCOMMAND 通知,然后发送 WM_KEYDOWN 通知。
下面是可分配给轻弹的应用程序命令列表,其中包含可能发送的备份击键消息。
命令 | 备份击键 |
---|---|
APPCOMMAND_BROWSER_BACKWARD |
没有 |
APPCOMMAND_BROWSER_FORWARD |
没有 |
APPCOMMAND_COPY |
Ctrl+C |
APPCOMMAND_PASTE |
Ctrl+V |
APPCOMMAND_UNDO |
Ctrl+Z |
APPCOMMAND_DELETE |
戴尔 |
APPCOMMAND_CUT |
Ctrl+X |
APPCOMMAND_OPEN |
Ctrl+O |
APPCOMMAND_PRINT |
Ctrl+P |
APPCOMMAND_SAVE |
Ctrl+S |
APPCOMMAND_REDO |
Ctrl+Y |
APPCOMMAND_CLOSE |
编辑命令(如“复制”、“粘贴”、“剪切”和“删除”)可能会针对所选内容或位于轻扫手势基础的对象进行定向。 如果没有选择,则可以使用 FLICK_POINT 结构 中的数据来确定编辑命令的目标(如果有)对象。