Windows Touch编程体系结构概述-中文整理

体系结构概述

此体系结构概述提供了有关 Windows Touch API for Tablet 和触摸屏技术的背景信息,并说明它如何适合更大的 Windows 7 体系结构。

有关 Windows Touch 输入和笔势的消息

可通过在执行过程中侦听和解释消息来启用 Windows Touch 的消息传递功能。下图演示如何从硬件生成消息并通过 Windows 7 将消息发送到应用程序。

 

多点触控消息传递。

 

在该图的最左边的列中,触摸感应硬件接收来自用户的输入。然后,驱动程序在硬件和 OS 之间进行通信。接下来,OS 生成 WM_TOUCH 或 WM_GESTURE 消息,该消息稍后将发送到应用程序的 HWND。然后,在消息中已封装相关信息的情况下,应用程序将更新 UI。

默认情况下,应用程序接收笔势。除非应用程序使用 RegisterTouchWindow 函数注册 Windows Touch 输入消息,否则 Windows 将创建笔势(WM_GESTURE消息)通知,并将其发送到应用程序窗口。如果一个应用程序窗口注册以接收触控消息,则将 Windows Touch 输入(WM_TOUCH 消息)的通知发送到该应用程序窗口。从某种意义上说,在产生触控或在应用程序窗口上开始笔势之后,Windows Touch 和笔势消息是贪婪的,所有消息将发送到该应用程序,直至笔势完成或主触控完成。

对于旧版支持,Windows 将会解释弹出的 WM_GESTURE 消息,然后对映射到笔势的适当消息执行 SEND 或 POST 操作。若要避免中断旧版支持,请确保使用DefWindowProc 转发 WM_GESTURE 消息。有关旧版支持的更多信息,请参见 Windows Touch 笔势概述

操作和延时

Windows Touch 编程人员必须能够以对发生的笔势有意义的方式解释来自多个源的笔势。Microsoft 提供用于执行这些计算的操作 API。操作实质上是带有值的笔势,这些值与笔势关联并描述整个笔势。在将输入数据连接到操作处理器之后,可以检索与用户对对象执行的操作相关的信息。下图演示一种使用操作的方法。

 

操作体系结构

 

在该图的左上角,用户已触摸屏幕,这将创建触控消息。这些消息包含一个 x 坐标和一个 y 坐标,二者用于确定处于焦点的对象。处于焦点的对象包含一个操作处理器。接下来,在带有 TOUCHEVENTF_UP 标志的 WM_TOUCH 消息上执行以下操作:选择处于用户焦点的对象,引用操作处理器,并将消息发送到操作处理器。与此触控点关联的后续 WM_TOUCH 消息将发送到操作处理器,直到接收带有 TOUCHEVENTF_UP 标志的 WM_TOUCH 消息并将选定对象解除引用。在该图的右下部分中,使用实现 _IManipulationEvents 接口的操作事件接收器来处理操作事件,这些操作事件是在创建触控消息时引发的。当发生操作事件时,事件接收器会根据这些事件来执行对接口的更新。

在 Windows Touch 应用程序中,通常会采用简单的物理学原理使对象在不再被触摸的情况下平滑地停止,而不是突然停止。Microsoft 提供了延时 API 来执行这些简单的物理学原理计算,以便您的应用程序的行为与其他应用程序的行为类似。这还将减少创建可靠的物理学功能所需的工作量。下图演示如何使用延时。

 

延时体系结构

 

请注意延时和操作之间的相似之处。二者之间的唯一差别是,对延时而言,解释的消息将传递给延时处理器而不是操作处理器,并且延时处理器会引发事件。在该图的左上角,在带有 TOUCHEVENTF_UP 标志的 WM_TOUCH 消息上,触控消息用于标识一个处于焦点的对象,该对象包含延时处理器和操作处理器。后续的WM_TOUCH 消息将发送到操作处理器,并且操作处理器执行对应用程序 UI 的更新。在操作完成后,使用操作中的速度值来设置延时处理器。如中间列所示,使用计时器或独立线程中的其他循环对 IInertiaProcessor 接口调用 Process 或 ProcessTime 方法,直到这些调用指示处理器已完成处理。在进行这些调用时,将引发操作事件,操作事件接收器将基于 _IManipulationEvents 接口处理这些操作事件。在该图的右下部分中,稍后在操作事件通过此事件接收器中的事件处理程序发生时,此事件接收器将基于这些操作事件执行对应用程序 UI 的更新。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值