不多说,先上图
此菜单移植性较差,所以如果没有人有强烈求源码的愿望的话,我就不发源码了
在做完这个菜单后,我才上网参考其他人所做的菜单,发现原来大家所说的单片机的菜单原来指的是一张画面用到底的菜单,而不是这种图形式菜单。
其实这就是造成移植困难的主要原因(不能移植到没有绘图能力的屏幕上),另一个原因是菜单用了比较多的私人绘图函数(体积较大,看字体就知道了)。
不过即便如此我还是想介绍下这个菜单的特性:
构建速度非常快!
如图的菜单只需如下一点点的程序即可完成:
code menu_unit test_menu4[]={
{"HELLO\0"},{"MADE\0"},{"BY\0"},{"AOU\0"}
},test_light3[]={
{"ON L4\0" ,choosing_6},{"OFF L4\0" ,choosing_5},{"MORE >\0" ,0,test_menu4,4}
},test_light2[]={
{"OFF L2\0" ,choosing_3},{"OFF L3\0" ,choosing_4},{"L4 >\0" ,0,test_light3,3}
},test_light1[]={
{"OFF >\0" ,0,test_light2,3},{"MORE>\0" ,0,test_menu4,4},{"ON L2\0" ,choosing_1},{"ON L3\0" ,choosing_2}};
//{"选项的名称",选项被选择后执行的函数,选项被选择后打开的子菜单,子菜单下的项目数}
使用非常方便!
主程序里填写信息
menu_list mouse[6]={{3,3,test_light1,4,0}};
//{菜单顶点x座标,y座标,要启动的菜单,菜单下的项目数,光标所指的项目序号}
然后使用
menu_refresh(mouse);刷新下
就可以使用
menu_down(mouse);menu_enter(mouse);menu_back(mouse);
对光标进行操作了。而且菜单不打扰程序主进程,不会长时间占用CPU,可以在屏幕左边显示菜单,右边运行主程序。