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),并提示用户。

Physics Engine Sample

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

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

WagSample

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android 开发者

玩转全新的 Android 8.0 Oreo 后台策略

37440
来自专栏梦里茶室

收藏的技术文章链接(ubuntu,python,android等)

开发过程中收藏在Chrome书签栏里的技术文章,与自己的文章分开。 主要涉及python,android,ubuntu等内容,我自己常常在这里面找回忘了的知识...

588110
来自专栏美丽应用

Google Now Enabler:一键开启Google Now

1.2K40
来自专栏FreeBuf

走近科学:如何搞定各种各样的终端机

特别声明:本文提供一些绕过终端机的方法,仅用于安全学习及教学用图,禁止非法利用。本文旨在提高市面上终端机的安全性,避免其遭到恶意破坏。 定场诗 妖都地铁售票终端...

231100
来自专栏FreeBuf

Bash漏洞再次演进:缓冲区溢出导致远程任意命令执行

近几天,“Shellshock”Bash漏洞的出现可谓是给安全界投放了一颗重型炸弹,越来越多的厂商和黑白帽子都纷纷加入到分析阵营当中,同时也接二连三爆出了更多针...

220100
来自专栏移动端开发

iOS9.0 友盟分享详细过程

一: 申请友盟的AppKey(友盟的Key是根据应用的名称生成的!) 在友盟注册了你自己的开发者账号后就可以申请AppKey了。然后在这个方法里面设置Key -...

224100
来自专栏13blog.site

Spring+SpringMVC+MyBatis+easyUI整合优化篇(六)easyUI与富文本编辑器UEditor整合

前言 本来这一篇和接下来的几篇是打算讲一下JDBC和数据库优化的,但是最近很多朋友加我好友也讨论了一些问题,我发现大家似乎都是拿这个项目作为练手项目,作为脚手架...

36360
来自专栏Python数据科学

这些世界杯球星你真的认识吗?不如通过Python来认识一下吧

回到我们的正题,对于世界杯的球星们,人们知道的一般都是C罗,梅西,德罗巴等巨星,而对一些其它球星却很少了解。对于这些球星,你认识的有多少呢?下面就跟我一起认识一...

10920
来自专栏哲学驱动设计

CQRS讨论

今天和同事一起讨论了CQRS(Command Query Responsibility Segregation),过程中,我产生了一些疑问,先记录在这里,以后有...

19070
来自专栏進无尽的文章

地图| 高德地图源码级使用大全

高德地图提供包括:web前端、Android、iOS、服务器、小程序等平台的地图服务, 地图功能众多,本文记载的只是自己遇到的一些问题,绝大部分功能只要参照官...

68620

扫码关注云+社区

领取腾讯云代金券