定制窗口的使用 MTK

定制窗口的使用

一般我们创建mtk应用的时候,多多少少会用到Screen,而我们可以使用MTK自带的categories screen,这些封装好的函数,会完成两件重要的事情
第一是绘制我们自己创建的Screen,第二是检测该类型窗口的事件,当然MTK允许你设置一些事件的处理函数(也即钩子函数,Handler)。我们可以
在程序创建时调用EntryNewScreen,然后再调用ShowListCategoryScreen,绘制列表框窗口,并注册自己的highlight handler,当然也可,更进一步
即我们可以在这个screen上再绘制别的类型的窗口,比如ShowCategory74Screen,唯一需要注意的是,你需要把自己注册的钩子函数注销(干净的做法);
并且调用ExitListCategoryScreen(),来停止绘制列表框界面,再调用ShowCategory74Screen开始绘制文本框。嘿嘿,这个方法很爽的。不过,有一点
需要注意,就是绘图很慢,显示下一个窗口需要延时显示,即调用ExitListCategoryScreen之后,延时一段时间后再调用ShowCategory74Screen,这样才
不会有“重影”。

补充:需要注意的是新窗口的建立撤销方法,我以实例说明,
static void MF_Scr_Exit(void)
{
 MF_Exit_LastCategoriesScreen();
 //if(new_scr_id == GetActiveScreenId())
 // GoBackHistory();
 //else
  DeleteScreenIfPresent(new_scr_id);
 if ( exit_func )
  exit_func();
}
static void MF_Scr_Enter(void)
{
 EntryNewScreen(new_scr_id, MF_Scr_Exit, MF_Scr_Enter, NULL);
 if( enter_func )
  enter_func();
}

EntryNewScreen的第3个参数就是screen的入口函数,必须设置成MF_Scr_Enter本身,否则,什么效果都不会出来,这也是够变态的,至于其原因,我不愿详述。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值