原创 【笔记】最近在做的黑白屏系统界面

2011-1-12 18:59 2099 24 24 分类: MCU/ 嵌入式

关于系统界面的一些学习

没有用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条评论)

登录后参与讨论
我要评论
0
24
关闭 站长推荐上一条 /2 下一条