Mouse Gestures on Windows Mobile

 

     

    

         Windows Mobile设备屏幕比较小,设计合理的UI很重要。众所周知,在PC机上使用的软件,如遨游(Maxthon),是支持鼠标手势的。我觉得,这在很大程度上,丰富了用户的使用体验。可惜,在windows mobile设备上,我没有碰到过类似的体验。后来,Dopod S1出来了,它的touch flow让人眼前一亮,很炫很酷,很好很强大,我个人是这么认为的。再到后来,出来新的网页浏览器UCWEB,也支持鼠标手势,简化了很多触笔点击菜单的操作,极大地丰富了用户的使用感受。

说到这里,不得不说说Windows Mobile版本和触摸屏的关系。发展到Windows Mobile 6 以后,原来的Smartphone改为Windows Mobile 6 StandardPocket PC Phone改为Windows Mobile 6 ProfessionalPocket PC改为Windows Mobile 6 Classic。这样,Windows Mobile 6细化了版本对终端的区分。从传统来看,Smartphone使用数字键盘操作、不具备触摸屏,而 Pocket PC Phone则是不具备键盘,依靠触摸屏来操作。但是,目前,越来越多的Pocket PC Phone开始具备了数字键盘甚至QWERTY键盘,摩托罗拉Q系列Smartphone也开始配备QWERTY键盘。同时,很多厂商不仅生产 Pocket PC Phone手机,同时也生产Pocket PC,这也让很多用户难以区分两者之间的区别。

Windows Mobile 6后,不具备触摸屏的Windows智能手机都会被称为“Standard”,而“Classic”则意味着这是不具备通话功能的掌上电脑,只有“Professional”版本的终端才是具备通话功能,并且支持触摸屏的智能手机。

扯远了,回归正题。那么,我们如何在Windows Mobile设备上实现鼠标手势(Mouse Gesture)呢?Fredrik Bornander”Optimizing Screen Area using Mouse Gestures”中,给出了一个比较简单且容易实现的方法。

首先,在MouseDown事件中,建立一个空的List<Point>,用来存储以后的mouse path。然后,触笔的拖拽引发MouseMove事件,在这些事件中,记录mouse经过的每一个点,存到已经建立的List中。接下来就是检查List中的点,是否组成一个Gesture。当然,这些Gesture是预先定义好的。如果和其中的Gesture匹配,那么就发消息给listener,通知它已经找到。

具体的实例是一个jpg图片浏览器,显示某个文件夹下的jpg图片。由于Windows Mobile设备屏幕比较小,我们可以全屏显示图片,同时使用Mouse Gesture进行相应操作,如“显示下一张”、“显示上一张”、“显示preview”、“关闭preview”、“顺时针旋转”、“逆时针旋转”、“保存”和“退出”等等。

下载工程源代码的链接:https://files.cnblogs.com/dearsj001/MouseGestures.rar

windows mobile professional 6.1模拟器上的演示视频:

https://files.cnblogs.com/dearsj001/Video05.rar

使用visual studio 2008的朋友,可以直接打开工程。目前使用visual studio 2005的,可以找到Backup文件夹,里面是visual studio 2005的工程文件。

工程提供了.NET Compact Framework(Device) .NET Framework(desktop)两个实例,Device下默认的图片文件夹是Storage Carddesktop下默认的图片文件夹是C:\Documents and Settings\Administrator\My Documents\My Pictures

注意,使用中文版模拟器或者中文版机子的朋友,需要稍微修改一下代码,即需要将相关的路径名改为中文,如”Storage Card”改为存储卡

 

参考文章:Fredrik Bornander-Optimizing Screen Area using Mouse Gestures

链接地址: http://www.codeproject.com/KB/mobile/MouseGestures.aspx

posted on 2008-10-13 15:34  施炯  阅读(2351)  评论(5编辑  收藏  举报