如何实现在不同菜单下相同按键的不同功能

2019-10-12 13:32发布

最近查阅了网上用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.这样的结构,功能按键的功能是唯一确定的,如果我想在不同的菜单下或者功能函数下它的按键功能不一定是这个呢,该如何改

我需要把有关菜单的写成模块化的,利于修改,维护,调用,但我总觉得我的程序好繁琐,很臃肿,很想简化程序
路过的小伙伴们看看吧,给点意见



1.png MenuDisplay.rar (3.43 MB, 下载次数: 127) 2017-3-10 16:55 上传 点击文件名下载附件
多级菜单







友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。