关于系统界面的一些学习
没有用GUI
参考一个占用内存很小的系统界面例子,部分代码如下
第0,5,10组 结构体成员内的参数没有0,而其他成员许多参数为0,因为用不上,
_CONST_ KbdTabStruct KeyTab[]={
// |-----------> Index
// | Up
// | | Down
// | | | Left
// | | | | Right --->功能函数
// | | | | | |
{ 0, 1, 2, 3, 4,(*DispMenuTop)},// 待机画面
{ 1, 0, 0, 0, 0,(*DispMenuTopUp)},
{ 2, 0, 0, 0, 0,(*DispMenuTopDown)},
{ 3, 0, 0, 0, 0,(*DispMenuTopLeft)},
{ 4, 0, 0, 0, 0,(*DispMenuTopRight)},
{ 5, 6, 7, 8, 9,(*DispIcoMenuInit)}, //图标层菜单
{ 6, 0, 0, 0, 0,(*DispIcoMenuUp)}, //
{ 7, 0, 0, 0, 0,(*DispIcoMenuDown)}, //
{ 8, 0, 0, 0, 0,(*DispIcoMenuLeft)}, //
{ 9, 0, 0, 0, 0,(*DispIcoMenuRight)},//
{10,11,12,13,14,(*DispMenuFuncInit)}, //"功能"
{11, 0, 0, 0, 0,(*DispMenuFuncUp)}, //
{12, 0, 0, 0, 0,(*DispMenuFuncDown)}, //
{13, 0, 0, 0, 0,(*DispMenuFuncLeft)}, //
{14, 0, 0, 0, 0,(*DispMenuFuncRight)},//
...}
但是在后面的菜单函数处理时却要为了防止菜单机制指向索引为0的成员(这样就跳到索引号为0的初始界面了),所以要在每个指向的函数里加一句页面重定向函数:Jump2Menu();跳到当前页面的起始索引号处。
比如:当处理按下右键时
void DispMenuTopRight(void)
{
Jump2Menu(MenuTopIndex,FlashMode_NoAction);//这个函数就很重要
return;
}
总结来说每个按键处理函数都必须有 页面重定向操作,否则就很大情况跳转到初始页面了
文章评论(0条评论)
登录后参与讨论