随笔 - 249  文章 - 1  评论 - 1207  阅读 - 61万

Gesture APIs-Furthering Windows Mobile 6.5 Touch Gesture Framework

    Windows mobile 6.5开发者工具包在6月初就已经面世了。它给广大技术爱好者带来的新特性包括Widgets和Gesture API。在Widgets应用上,已经有开发人员进行了探索和尝试,包括Guojing马老师Jake.NET等。这次我们就一起来看看TDK中Gesture API的例子。

    在开始之前,对于Gesture API,我们需要注意的有以下两点:

    第一,Gesture API只能使用在Windows Mobile 6.5平台上,之前版本的Windows Mobile都不支持,所以,就不要想着在Windows Mobile 6.0或者6.1(因为目前很多人的设备都是这个版本)上来开发基于Gesture API的应用。

    第二,Windows Mobile 6.5平台上,也只是Classic and Professional SKUs支持Gesture API,,因为大家知道,Standard是不支持触摸的。

    TDK自带的Gesture API例子位于%\Windows Mobile 6.5 Developer Tool Kit\Samples目录下。包含三个工程:GestureMetricsSample、PhysicsEngineSample和WagSample。这三个工程分别用到了Gesture.h、GesturePhysicsEngine.h和WindowAutoGesture.h这三个头文件,都位于%\Program Files\Windows Mobile 6 SDK\PocketPC\Include\Armv4i目录下。

Gesture Metrics Sample

    GestureMetricsSample这个例子展示了如何使用WM_GESTURE中的GID_HOLD(保持), GID_SELECT(选择)和GID_DOUBLESELECT(双击)这三个消息。

    当用户用触笔单击屏幕的时候,启动保持定时器(ID_HOLD_TIMER);如果在WM_GESTURE中检测到是GID_HOLD,那么就kill这个保持定时器(ID_HOLD_TIMER),并提示用户;如果在WM_GESTURE中检测到是GID_SELECT,那么就启动双击定时器(ID_DOUBLESELECT_TIMER);如果在WM_GESTURE中检测到是GID_DOUBLESELECT,那么就kill这个双击定时器(ID_DOUBLESELECT_TIMER),并提示用户。

image image image

Physics Engine Sample

    PhysicsEngineSample这个例子展示了如何使用WM_GESTURE中GID_PAN, GID_SCROLL 和GID_END这三个消息。需要注意的是,在使用Physics Engine之前,需要声明一个HPHYSICSENGINE类型的全局变量。

    有了这个Physics Engine,我们就可以在设备上浏览大分辨率的图片,使用触笔在触摸屏上滑动,选择需要浏览的部分,在过渡时,具有一个滑动滚屏的效果,这个功能目前是新加入的。大家可以尝试用windows mobile自带的"图片和视频"工具打开图片,这时是没有滑动滚屏的效果的,但是程序中如果我们使用了Physics Engine,就可以产生滑动滚屏的效果。

image image

WagSample

    WagSample这个例子实现的功能和PhysicsEngineSample这个例子是一样的,不同的是,它加入了用户的选择,即我们用户可以选择“是否支持触摸笔”、“是否支持滚屏”等等。

image image

    这里只是很肤浅地介绍了WM6.5 TDK自带的Gesture API例子,主要是MSDN上的资料实在是太少(目前好像还没有)。基本上是把自己使用这三个例子的体会发上来和大家共享一下。下一步的目标是自己做一个实例,学会如何使用Gesture API,并逐渐解开它神秘的面纱。

posted on   施炯  阅读(3859)  评论(10编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
< 2009年7月 >
28 29 30 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31 1
2 3 4 5 6 7 8

点击右上角即可分享
微信分享提示