Windows Mobile 6.5 Gesture API 介绍 --- (3) 使用Managed Gesture API
来源:互联网 发布:西裤长度 知乎 编辑:程序博客网 时间:2024/05/17 08:22
本文首发自MobileSide.cn,原文地址:http://mobileside.cn/post/2010/01/07/GestureAPI3.aspx
-----------------------------------------------------------------------------------------------------------------
在本系列的第一节《Windows Mobile 6.5 Gesture API 介绍 --- (1) 概述》中,我们提到了微软针对Windows Mobile的Gesture提供了5种不同的手势。他们分别是Tap, Double Tap, Hold, Flick, Pan。如果您使用C++来开发Windows Mobile 6.5上的应用程序,那么请参考MSDN上关于Windows Mobile上Gesture的参考文档 http://msdn.microsoft.com/en-us/library/ee220917.aspx。 如果您是使用托管代码,那么您可以使用由微软的两位工程师(Alex Yakhnin, Ron Buckton)所封装的针对托管代码的API(http://code.msdn.microsoft.com/gestureswm)。
在这套API中,分别针对这5种手势做了封装,不过名字略有改动:Tap改为Select; Double Tap改为DoubleSelect; Flick改为Scroll。 Hold和Pan没有改变。这套API的用法很简单,实例化一个他们封装好的手势识别器组件,然后给它指定要监控的对象。最后,加上针对这5种手势的事件处理函数即可。如下代码所示:
private void InitGestureRecognizer()
{
gestureRecognizer1 = new GestureRecognizer(this.panel1);
//You can also set the TargetControl property
//gestureRecognizer1.TargetControl = this.panel1;
gestureRecognizer1.Hold += new EventHandler<GestureEventArgs>(gestureRecognizer1_Hold);
gestureRecognizer1.Select += new EventHandler<GestureEventArgs>(gestureRecognizer1_Select);
gestureRecognizer1.DoubleSelect += new EventHandler<GestureEventArgs>(gestureRecognizer1_DoubleSelect);
gestureRecognizer1.Pan += new EventHandler<GestureEventArgs>(gestureRecognizer1_Pan);
gestureRecognizer1.Scroll += new EventHandler<GestureScrollEventArgs>(gestureRecognizer1_Scroll);
}
void gestureRecognizer1_Scroll(object sender, GestureScrollEventArgs e)
{
label1.Text = e.Kind.ToString() + ": " + e.State + ", (" + e.X + ", " + e.Y + "), d=" + e.ScrollDirection + ", a=" + e.Angle + ", v=" + e.Velocity;
}
void gestureRecognizer1_Pan(object sender, GestureEventArgs e)
{
label1.Text = e.Kind.ToString() + ": " + e.State + ", (" + e.X + ", " + e.Y + ")";
}
void gestureRecognizer1_DoubleSelect(object sender, GestureEventArgs e)
{
label1.Text = e.Kind.ToString() + ": " + e.State + ", (" + e.X + ", " + e.Y + ")";
}
void gestureRecognizer1_Select(object sender, GestureEventArgs e)
{
label1.Text = e.Kind.ToString() + ": " + e.State + ", (" + e.X + ", " + e.Y + ")";
}
void gestureRecognizer1_Hold(object sender, GestureEventArgs e)
{
label1.Text = e.Kind.ToString() + ": " + e.State + ", (" + e.X + ", " + e.Y + ")";
}
该示例代码是在窗体上放了两个控件: Panel1用来捕获手势事件;label1用来显示当前手势的一些参数。 运行状况如下图所示:
最后一部分,是demo程序的源代码:GestureDemo2.zip (58.05 kb)
看到了吧,在Windows Mobile 6.5中,我们要给我们的程序加上手势的支持是如此的简单方便。好了,本小节就到这里,在下一节中我们将讨论手势和动画。
- Windows Mobile 6.5 Gesture API 介绍 --- (3) 使用Managed Gesture API
- Windows Mobile 6.5 Gesture API 介绍 --- (4) 使用动画引擎
- Windows Mobile 6.5 Gesture API 介绍 --- (1) 概述
- Windows Mobile 6.5 Gesture API 介绍 --- (2) 默认支持Gesture的控件
- Windows Mobile 6.5 手势识别API(Gesture)
- Gesture手势-------LeapMotion API
- Gesture
- Gesture
- EWS Managed API 介绍
- EWS Managed API 介绍
- EWS Managed API 介绍
- Android Gesture 使用简介
- android的Gesture使用
- gesture-imageview.jar使用
- iOS Gesture Recognizer 简单使用
- gesture--Android手势的使用
- Windows Mobile 笔记 - API
- ChaLearn Gesture Challenge_1:CGD数据库简单介绍
- 白话易经
- 解释Windows7“上帝模式”的原理
- MDI下新建一个窗口显示数据处理的结果(转)
- C++中的引用&
- 网络宣传策划无所不用其极啊
- Windows Mobile 6.5 Gesture API 介绍 --- (3) 使用Managed Gesture API
- 资本主义基本矛盾
- java 虚拟机运行时数据区域 Runtime Data Areas
- Java内部类访问外部对象的方法
- Font应用
- C77 - 不完全扫雷[不定期更新,全凭心情]
- Enforcing mode requested but no policy loaded. Halting now. kernel panic - not syncing: Attempted to kill init!
- Mac OS X:Snow Leopard的改进和技巧
- Fedora 9 的一些小应用