概述
由于控件的自刷新特性,很多控件编制的时候就可以非常简单。所谓的自刷新特性,就是当控件属性发生变化后,系统自动会调用控件的show()方法进行属性刷新;
控件编制的最重要的思想
- !!!控件的所有的显示、动态状态都存在于属性中!!!
- 比如按钮按下的动态效果,需要有属性来标记处于动态效果的步骤
- 比如xk_button:
int ts=0; //状态计数,这就是动态效果的步骤计数
void show()
{ //在此书写刷新前景的语句
automode(bc);
gradbasecolor(color,bmode);
if (ts==0){
box(x1,y1,x2,y2,19);
box(x1+1,y1+1,x2-1,y2-1,bc);
}
else{ //按下的动态效果
box(x1,y1,x2,y2,20-ts);
box(x1+1,y1+1,x2-1,y2-1,20-ts);
}
label(dotm,x1+2,y1+2,x2-2,y2-2,text,cc,bc,1);
}
void ontimer()
{ //在此书写有关定期器对数据的修改代码
if (ts>0) ts--;
}
可以看到在定时器中对动态效果步骤的计算结果,由于控件的自刷新特性系统会自动调用show()方法来进行显示,于是代码显得非常简单
同样,触摸事件也可以按此方法直接变更属性,然后交由show()事件来更新显示;