微动博客 >> 示例程序 >> C++ >> 悬停触发按钮

悬停触发按钮

Vidoo 2015-10-26
浏览次数60

按钮是在开发界面时是不可缺少,微动提供了很多可以激活按钮选项的方式,现在我们介绍使用悬停的方法选定按钮的方式进行说明。
与之前的例子一样,我们首先声明与定义需要用到的frame和finger对象,代码如下:

const sharpnow::Frame* frame = sdk.GetFrameInfo();
const sharpnow::Finger* finger;
sdk.RetrieveFrame(0);
frame = sdk.GetFrameInfo();
finger = sdk.GetFinger(frame->finger_focused,0);

定义两个控件对象,一个作为按钮的底座,另一个作为按钮的主体部分。

ObjectLow;//底座
ObjectHigh;//按钮主体

将按钮的底座与主体放置在合适的位置,使图像看起来像是一个没有被按下去的按钮,用手指控制光标移动到按钮上方的位置,设置合理的悬停时间(按钮的触发条件就是时间阀值,所以时间的长短必须设置好,短的话容易误操作,长的话又很难触发),悬停时间达到之后,就可以加入我们需要按钮触发的事件,同时控制按钮进行一次先向下再向上的运动,构成完整的按钮响应效果。

if (finger->stop==10){
for (int i=0;i<H;i++){//H为需要移动的高度(像素值)
ObjectHigh ->Location = Point(ObjectHigh ->Location.X, 1+ ObjectHigh ->Location.Y);
}
ObjectHigh ->Image=pushedImage; //更换图像,一般可设置为高亮,表示按钮此时已经被按下
………………………………………….. //此处可以定义按钮按下所触发的事件
for (int i=0;i<H;i++){
ObjectHigh ->Location = Point(ObjectHigh ->Location.X, ObjectHigh ->Location.Y-1);
}//用户可以像这样使用简单的两个for循环达到动画的效果,也可以制作精明的gif动画播放
上篇文章: