C语言设计学习,教你如何将LCD菜单对象化.doc

上传人:白大夫 文档编号:3250912 上传时间:2019-08-06 格式:DOC 页数:2 大小:13.50KB
返回 下载 相关 举报
C语言设计学习,教你如何将LCD菜单对象化.doc_第1页
第1页 / 共2页
亲,该文档总共2页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《C语言设计学习,教你如何将LCD菜单对象化.doc》由会员分享,可在线阅读,更多相关《C语言设计学习,教你如何将LCD菜单对象化.doc(2页珍藏版)》请在三一文库上搜索。

1、C语言设计学习,教你如何将LCD菜单对象化这是我十三年前读研究生的时候写的系列文章C语言嵌入式系统编程修炼系列文章中的一小节,是一个用面向对象,把LCD上面菜单,对象化的例子。该文章原始出处:菜单操作无数人为之绞尽脑汁的问题终于出现了,在这一节里,我们将看到,在C语言中哪怕用到一丁点的面向对象思想,软件结构将会有何等的改观!笔者曾经是个笨蛋,被菜单搞晕了,给出这样的一个系统:要求以键盘上的 键切换菜单焦点,当用户在焦点处于某菜单时,若敲击键盘上的OK、CANCEL键则调用该焦点菜单对应之处理函数。我曾经傻傻地这样做着:/* 按下OK键 */void onOkKey()/* 判断在什么焦点菜单上

2、按下Ok键,调用相应处理函数 */Switch(currentFocus)case MENU1:menu1OnOk();break;case MENU2:menu2OnOk();break;/* 按下Cancel键 */void onCancelKey()/* 判断在什么焦点菜单上按下Cancel键,调用相应处理函数 */Switch(currentFocus)case MENU1:menu1OnCancel();break;case MENU2:menu2OnCancel();break;终于有一天,我这样做了:/* 将菜单的属性和操作封装在一起 */typedef struct tagSy

3、sMenuchar *text; /* 菜单的文本 */BYTE xPos; /* 菜单在LCD上的x坐标 */BYTE yPos; /* 菜单在LCD上的y坐标 */void (*onOkFun)(); /* 在该菜单上按下ok键的处理函数指针 */void (*onCancelFun)(); /* 在该菜单上按下cancel键的处理函数指针 */SysMenu, *LPSysMenu;当我定义菜单时,只需要这样:static SysMenu menuMENU_NUM =menu1, 0, 48, menu1OnOk, menu1OnCancel, menu2, 7, 48, menu2On

4、Ok, menu2OnCancel, menu3, 7, 48, menu3OnOk, menu3OnCancel, menu4, 7, 48, menu4OnOk, menu4OnCancel;OK键和CANCEL键的处理变成:/* 按下OK键 */void onOkKey()menucurrentFocusMenu.onOkFun();/* 按下Cancel键 */void onCancelKey()menucurrentFocusMenu.onCancelFun();程序被大大简化了,也开始具有很好的可扩展性!我们仅仅利用了面向对象中的封装思想,就让程序结构清晰,其结果是几乎可以在无需修改程序的情况下在系统中添加更多的菜单,而系统的按键处理函数保持不变。面向对象,真神了!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1