搜索
bottom↓
回复: 13

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

[复制链接]

出0入0汤圆

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

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2013-12-7 08:44:03 | 显示全部楼层
你没有真正理解菜单索引号的意义,你上面的菜单有问题吧,没看到你的0索引号对应的菜单动作,当上面多处出现了。想让某个按键操作无动作可以做一个“空”操作函数来实现,但是这里的“空”是要维持当前索引号不变。

出0入0汤圆

发表于 2013-12-7 08:44:54 | 显示全部楼层
{9,0,9,3,3, (*menu_szfj_cg)},      //
{10,10,10,2,2, (*menu_qdfj_cg)},      //

出0入0汤圆

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

出0入0汤圆

 楼主| 发表于 2013-12-7 09:11:53 | 显示全部楼层
zyw19987 发表于 2013-12-7 08:46
楼上的操作不通用,得看你当前菜单执行函数是什么样的。

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

出0入0汤圆

 楼主| 发表于 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)},      //
};

出0入0汤圆

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

能再多点提示吗?
谢谢!

出0入0汤圆

 楼主| 发表于 2013-12-7 14:25:07 | 显示全部楼层
再顶下。

出0入0汤圆

 楼主| 发表于 2013-12-7 21:27:18 | 显示全部楼层
睡前再顶顶。

出0入0汤圆

发表于 2013-12-7 23:17:47 | 显示全部楼层
额  楼主上全代码呢

刚刚学了结构体  

出0入0汤圆

 楼主| 发表于 2013-12-8 00:12:04 | 显示全部楼层
那些都是界面的,没有字库的液晶驱动程序,不同的液晶是没法参考

出0入264汤圆

发表于 2013-12-8 08:34:16 | 显示全部楼层
不响应的定义为 -1
在获得索引之后,判断如果索引值为非 -1 才进行跳转。
if(iIndex != -1)
{
    //正常的跳转
}

出0入0汤圆

发表于 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   

出0入0汤圆

 楼主| 发表于 2013-12-8 11:14:56 | 显示全部楼层
本帖最后由 jqfsjt 于 2013-12-8 11:25 编辑
mcu_lover 发表于 2013-12-8 08:34
不响应的定义为 -1
在获得索引之后,判断如果索引值为非 -1 才进行跳转。
if(iIndex != -1)


谢谢。我试试。经常到你的博客中看看。只有敬仰的份。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 14:24

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表