Windows Touch编程体系结构概述-中文整理
2013-05-04 23:50
555 查看
体系结构概述
此体系结构概述提供了有关 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 的更新。
相关文章推荐
- Windows Touch编程选择使用适当方法-中文整理
- Oracle 9i & 10g编程艺术-深入数据库体系结构——第2章:体系结构概述
- Windows Touch的WM_GESTURE与WM_GESTURENOTIGY消息-中文整理
- Windows Touch的GESTURECONFIG,GESTUREINFO,GESTURENOTIFYSTRUCT结构体-中文整理
- Windows Touch应用程序疑难解答-中文整理
- Windows网络体系结构总结
- WatchKit编程指南:概览--Watch应用的体系结构
- 读书笔记——Windows核心编程(13)Windows内存体系结构
- windows的usb体系结构
- S3C2440时钟体系结构与编程
- 三层体系结构与数据库编程
- Oracle Database 9i/10g/11g编程艺术:深入数据库体系结构
- RMAN概述及其体系结构
- 第一篇 Oracle体系结构总览(整理)
- Windows Touch 消息入门-中文这个理
- DirectShow编程(3.1)- 关于DirectShow - DirectShow体系概述
- [书评]Oracle Database 9i/10g/11g编程艺术:深入数据库体系结构
- Spring 体系结构(Spring 概述 二)
- ARM的体系结构与编程系列博客——ARM体系变种
- Oracle 9i & 10g编程艺术-深入数据库体系结构——第一章 开发成功的Oracle应用程序