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 Standard,Pocket PC Phone改为Windows Mobile 6 Professional,Pocket 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”、“顺时针旋转”、“逆时针旋转”、“保存”和“退出”等等。

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

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

http://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 Card,desktop下默认的图片文件夹是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

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏吉浦迅科技

C++ AMP双精度Windows环境测试报告

测试日期:2014-2-26 测试环境:华硕ESC1000超算工作站 测试GPU:AMD FirePro S7000 测试系统:Win7 & Win 8 ...

309110
来自专栏静晴轩

SublimeText下写作利器之MarkdownEditing

之前有陆续学习和整理关于追寻高效工作的一路折腾;毕竟技无止境,需要不断的学习总结和对比。而其中诸多内容也是需要分支出来一一细谈(其实就是更为详尽搜集些资料,然后...

38350
来自专栏.NET开发者社区

.NET(C#)有哪些主流的ORM框架,SqlSugar,Dapper,EF还是...

前言 在以前的一篇文章中,为大家分享了《什么是ORM?为什么用ORM?浅析ORM的使用及利弊》。那么,在目前的.NET(C#)的世界里,有哪些主流的ORM,Sq...

97890
来自专栏林德熙的博客

C# 设计模式 责任链 后退按钮使用责任链

责任链模式是一种对象的行为模式。在责任链模式里,很多对象由每一个对象对其下家的引用而连接起来形成一条链。请求在这个链上传递,直到链上的某一个对象决定处理此请求。...

11410
来自专栏Web 开发

又是一年PC操作系统三国鼎立的时刻~

Win8 在今早零时,发布开发者预览版,Lion已经发布多时,Ubuntu11.10的正式版也已经逼近

8600
来自专栏月色的自留地

小技巧,把Markdown文本发布到微信公众号文章

34130
来自专栏杨建荣的学习笔记

巧用parallel极速提升数据加载速度(r2第21天)

并行在平时工作中可能不是很注意,因为有时候即使设定了parallel 相关的hint,感觉性能也好不到哪去。这是我以前的感觉。 今天通过一个案例来分享一下通过p...

36260
来自专栏生信技能树

生信菜鸟团博客2周年精选文章集(5)seq-answer和bio-star论坛爬虫

生信常用论坛seq-answer里面所有帖子爬取 生信常用论坛bio-star里面所有帖子爬取 这个是爬虫专题第一集,主要讲如何分析bio-star这个网站并爬...

38880
来自专栏角落的白板报

.NET CORE 框架ABP的代码生成器(ABP Code Power Tools )使用说明文档

前言 各位好,又是一个多月没更新文章了。 原因嘛,大家都懂的,太忙了~ 临近年末,公司的项目、年会的做技术支持,同事朋友聚餐也比较频繁。 当然视频教程也没有继...

55050
来自专栏BIT泽清

教你如何提审iOS马甲包不会遇到2.1大礼包或4.3正确姿势分享

App Store 搜索关键词 世界杯 或者 通过链接下载 皇冠Ьet365-世界杯体育赛事直播吧:https://itunes.apple.com/cn/ap...

90250

扫码关注云+社区

领取腾讯云代金券