用结构做的液晶菜单中按键不用该咋处理?
下面程序中。我是用的4个按键来操作的,如果在界面中,不让个别按键不起作用。就是按后,和没有按一样,改在结构中写入什么呢?我现在填入 负数和NULL都不行,NULL效果和0是一样的,返回主菜单1 中。
typedef struct
{
char current;
char up;
char down;
char ok;
char esc;
void (*current_operation)();
} key_table;
key_table code table[]=
{
{1,0,1,4,0, (*menu_main_1)}, //主菜单--1
{2,0,2,5,1, (*menu_main_2)}, //主菜单--2
{3,1,3,6,2, (*menu_main_3)}, //主菜单--3
{4,2,0,7,3, (*menu_main_4)}, //主菜单--4
{5,0,0,0,0, (*menu_cjsj)}, //
{6,1,1,8,1, (*menu_szfj)}, //
{7,0,0,9,2, (*menu_qdfj)}, //
{8,3,3,3,3, (*menu_szsz)}, //
{9,0,NULL,3,3, (*menu_szfj_cg)}, //
{10,NULL,NULL,2,2, (*menu_qdfj_cg)}, //
}; 你没有真正理解菜单索引号的意义,你上面的菜单有问题吧,没看到你的0索引号对应的菜单动作,当上面多处出现了。想让某个按键操作无动作可以做一个“空”操作函数来实现,但是这里的“空”是要维持当前索引号不变。 {9,0,9,3,3, (*menu_szfj_cg)}, //
{10,10,10,2,2, (*menu_qdfj_cg)}, // 楼上的操作不通用,得看你当前菜单执行函数是什么样的。 zyw19987 发表于 2013-12-7 08:46
楼上的操作不通用,得看你当前菜单执行函数是什么样的。
嗯。是这样的,不能返回原来的菜单。 zyw19987 发表于 2013-12-7 08:44
你没有真正理解菜单索引号的意义,你上面的菜单有问题吧,没看到你的0索引号对应的菜单动作,当上面多处出 ...
嗯,这个是调试过程的函数,没注意发上来了。
下面的是正常的
key_table code table[]=
{
{0,0,1,4,0, (*menu_main_1)}, //主菜单--1
{1,0,2,5,1, (*menu_main_2)}, //主菜单--2
{2,1,3,6,2, (*menu_main_3)}, //主菜单--3
{3,2,0,7,3, (*menu_main_4)}, //主菜单--4
{4,0,0,0,0, (*menu_cjsj)}, //
{5,1,1,8,1, (*menu_szfj)}, //
{6,0,0,9,2, (*menu_qdfj)}, //
{7,3,3,3,3, (*menu_szsz)}, //
{8,0,NULL,3,3, (*menu_szfj_cg)}, //
{9,NULL,NULL,2,2, (*menu_qdfj_cg)}, //
}; zyw19987 发表于 2013-12-7 08:44
你没有真正理解菜单索引号的意义,你上面的菜单有问题吧,没看到你的0索引号对应的菜单动作,当上面多处出 ...
能再多点提示吗?
谢谢! 再顶下。
睡前再顶顶。 额楼主上全代码呢
刚刚学了结构体 那些都是界面的,没有字库的液晶驱动程序,不同的液晶是没法参考 不响应的定义为 -1
在获得索引之后,判断如果索引值为非 -1 才进行跳转。
if(iIndex != -1)
{
//正常的跳转
} 额结构体数组啊
up和down为什么有数字呢 比如菜单1的0和4,菜单2的2和5
{1,0,1,4,0, (*menu_main_1)}, //主菜单--1
{2,0,2,5,1, (*menu_main_2)}, //主菜单--2
{3,1,3,6,2, (*menu_main_3)}, //主菜单--3
{4,2,0,7,3, (*menu_main_4)}, //主菜单--4 本帖最后由 jqfsjt 于 2013-12-8 11:25 编辑
mcu_lover 发表于 2013-12-8 08:34
不响应的定义为 -1
在获得索引之后,判断如果索引值为非 -1 才进行跳转。
if(iIndex != -1)
谢谢。我试试。经常到你的博客中看看。只有敬仰的份。
页:
[1]