中级会员
 
- 积分
- 386
- 金钱
- 386
- 注册时间
- 2016-9-5
- 在线时间
- 66 小时
|
2金钱
最近查阅了网上用12864构建多级菜单的很多资料,最终采用了这位同学的结构实现了多级菜单http://www.openedv.com/forum.php?mod=viewthread&tid=46635&fromuid=63734
(出处: OpenEdv-开源电子网)
,有更改,能够上下翻都很流畅
后面会附上我自己改的程序,但是依然有很多疑问和待解决的问题,希望各位大神指导
1.结构体中的void (**func)();功能函数是指针类型的,这样写的话是代表没有形参吗?我的程序中写了没有形参的func函数后可以实现功能,但是如果我想要写带形参的功能函数呢?
该怎么定义,该怎么调用?
typedef struct menu
{
u8 range_from;
u8 range_to; //开始和结束符号
u8 itemCount; //项目的总数
u8 selected; //当前选择项
u8 *MenuItems[Max]; //菜单项目
struct menu **subMenus; //子菜单
struct menu *parent; //上级菜单指针
void (**func)(); //功能函数
}Menu;
2.这样的结构,功能按键的功能是唯一确定的,如果我想在不同的菜单下或者功能函数下它的按键功能不一定是这个呢,该如何改
我需要把有关菜单的写成模块化的,利于修改,维护,调用,但我总觉得我的程序好繁琐,很臃肿,很想简化程序
路过的小伙伴们看看吧,给点意见
MenuDisplay.rar
(3.43 MB, 下载次数: 165)
|
最佳答案
查看完整内容[请看2#楼]
1,void (**func)(u8,u16,u32); 这就代表有3个参数,分别是u8,u16和u32
2,你自己写函数实现即可。
|