jqfsjt 发表于 2013-12-7 08:36:32

用结构做的液晶菜单中按键不用该咋处理?

下面程序中。我是用的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)},      //
};

zyw19987 发表于 2013-12-7 08:44:03

你没有真正理解菜单索引号的意义,你上面的菜单有问题吧,没看到你的0索引号对应的菜单动作,当上面多处出现了。想让某个按键操作无动作可以做一个“空”操作函数来实现,但是这里的“空”是要维持当前索引号不变。

HadesHe 发表于 2013-12-7 08:44:54

{9,0,9,3,3, (*menu_szfj_cg)},      //
{10,10,10,2,2, (*menu_qdfj_cg)},      //

zyw19987 发表于 2013-12-7 08:46:23

楼上的操作不通用,得看你当前菜单执行函数是什么样的。

jqfsjt 发表于 2013-12-7 09:11:53

zyw19987 发表于 2013-12-7 08:46
楼上的操作不通用,得看你当前菜单执行函数是什么样的。

嗯。是这样的,不能返回原来的菜单。

jqfsjt 发表于 2013-12-7 09:14:59

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)},      //
};

jqfsjt 发表于 2013-12-7 09:29:14

zyw19987 发表于 2013-12-7 08:44
你没有真正理解菜单索引号的意义,你上面的菜单有问题吧,没看到你的0索引号对应的菜单动作,当上面多处出 ...

能再多点提示吗?
谢谢!

jqfsjt 发表于 2013-12-7 14:25:07

再顶下。

jqfsjt 发表于 2013-12-7 21:27:18

睡前再顶顶。

xou822 发表于 2013-12-7 23:17:47

额楼主上全代码呢

刚刚学了结构体

jqfsjt 发表于 2013-12-8 00:12:04

那些都是界面的,没有字库的液晶驱动程序,不同的液晶是没法参考

mcu_lover 发表于 2013-12-8 08:34:16

不响应的定义为 -1
在获得索引之后,判断如果索引值为非 -1 才进行跳转。
if(iIndex != -1)
{
    //正常的跳转
}

xou822 发表于 2013-12-8 09:11:16

额结构体数组啊

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:14:56

本帖最后由 jqfsjt 于 2013-12-8 11:25 编辑

mcu_lover 发表于 2013-12-8 08:34
不响应的定义为 -1
在获得索引之后,判断如果索引值为非 -1 才进行跳转。
if(iIndex != -1)


谢谢。我试试。经常到你的博客中看看。只有敬仰的份。
页: [1]
查看完整版本: 用结构做的液晶菜单中按键不用该咋处理?