dory_m 发表于 2019-9-10 23:23:16

谢谢,学习!!!

lushanlq 发表于 2019-9-11 08:15:38

学习了,谢谢分享

apad 发表于 2019-9-11 08:49:57

谢谢楼主分享

lyg407 发表于 2019-9-11 08:51:41

感谢楼主分享,学习一下。 收藏。

zjk 发表于 2019-9-11 08:52:05

学习一下

love0679 发表于 2019-9-11 08:59:53

好~学习学习~

maxking 发表于 2019-9-11 11:20:57

wjwjwjwj98 发表于 2019-9-10 23:07
弱弱的问一声 unsigned long int Mode: 1;中冒号的作用是什么?

同问。。

chendy6868 发表于 2019-9-11 11:26:31


虽然用不到,但是我要顶一下+1

xymxym 发表于 2019-9-11 11:36:33

wjwjwjwj98 发表于 2019-9-10 23:08
是不是表示只取一位?

是的,位域,定义的位数。

firegod01cn 发表于 2019-9-12 18:01:00

可以的 不错~~~~~~~~~~~~~~~

armstrong 发表于 2019-9-13 11:37:52

本帖最后由 armstrong 于 2019-9-13 11:42 编辑

十四年前在PIC16单片机上用汇编实现了这样的结构,菜单资源写了个VB6程序生成。
也支持动态参数显示,和菜单条目动态增删;用于一个主机框内,插入十来个不同类型子机的UI系统。
不过汇编的复用性是在太差,没有分享的价值了。

wuhuan 发表于 2019-9-16 22:07:05

谢谢分享,很好的资料

hmsfeng 发表于 2019-9-23 10:01:22

感谢楼主的分享

wangweigang0 发表于 2019-9-23 12:45:12


收藏备用,谢谢楼主分享

Wisen 发表于 2019-9-23 17:52:07

非常好的学习资料,谢谢分享!翠香还有吗

了无 发表于 2019-9-24 18:14:16

Wisen 发表于 2019-9-23 17:52
非常好的学习资料,谢谢分享!翠香还有吗

今年的完了,明年上市了我论坛和微信通知大家。这个品种产量小,还不好务。种的人少

569350810 发表于 2019-9-25 19:08:39

感谢楼主分享

lhaoyue 发表于 2019-10-18 15:14:10

谢谢分享,菜单程序。

huanghb 发表于 2019-10-18 16:17:39

下载了,学习,谢谢分享.

Gorgon_Meducer 发表于 2019-10-18 16:29:42

必须要顶一下

ztg328 发表于 2019-10-18 17:23:46

必须要mark下

zhw950 发表于 2019-10-18 17:29:56

谢谢分享

diego2003 发表于 2019-10-19 00:21:09

菜单mark

jiangkehong 发表于 2019-10-20 16:00:03

感谢楼主开源分享!

gyd0317 发表于 2019-10-20 19:51:20

记得10年前有人在论坛发过类似的模拟器和代码

zenghl 发表于 2019-11-21 11:26:12

感谢楼主开源分享!

122402902 发表于 2019-11-21 13:57:05

感谢分享以后学习

rogerllg 发表于 2019-11-21 14:06:22

自己做过菜单,但一直觉得自己做的不太完美,借鉴一下~

jiangyimfs1 发表于 2019-11-21 14:41:27

这个很不错,感谢分享了

jun427 发表于 2019-12-31 11:13:20

学习,菜单

diego2003 发表于 2020-1-2 16:10:57

MARKLCD菜单。。。

mcujack 发表于 2020-3-10 17:33:34

C小白来学习了

xiaotaodzgzs 发表于 2020-3-11 10:17:21

收藏了,谢谢楼主!

abcdzhy 发表于 2020-3-11 10:35:49

这个菜单结构也不错

caixiong 发表于 2020-3-15 21:59:53

收藏了,感谢楼主。

hkjabcd 发表于 2020-9-1 14:44:15

正好有时间看看,谢谢分享

lyg407 发表于 2020-9-1 18:01:53

学习一下,谢谢分享。

citroen988 发表于 2020-9-1 20:28:05

层级多了    unsigned long int ID可能不够用了啊

了无 发表于 2020-9-2 08:34:56

citroen988 发表于 2020-9-1 20:28
层级多了    unsigned long int ID可能不够用了啊

是的,当时考虑到了,不过一般应用用不到那么多层级,层级不够用的话得把ID的数据结构改一改

犯戒和尚 发表于 2020-9-2 08:44:09

学习一下

citroen988 发表于 2020-9-2 08:47:12

了无 发表于 2020-9-2 08:34
是的,当时考虑到了,不过一般应用用不到那么多层级,层级不够用的话得把ID的数据结构改一改 ...

都有兄弟指针、孩子指针、父亲指针了,怎么还整个ID呢?
这些指针足以表述层级了啊!


gmyu 发表于 2020-9-2 09:01:57

跑上了GUI,比如lvgl,是否还需要这样搞菜单啊。

了无 发表于 2020-9-2 12:01:03

gmyu 发表于 2020-9-2 09:01
跑上了GUI,比如lvgl,是否还需要这样搞菜单啊。

有这种级别的GUI就完全不需要这个了

了无 发表于 2020-9-2 12:03:17

citroen988 发表于 2020-9-2 08:47
都有兄弟指针、孩子指针、父亲指针了,怎么还整个ID呢?
这些指针足以表述层级了啊!



这些ID是用来自动初始化的,自动建立兄弟关系的。不用这个ID也行,就是得初始化的时候自己把兄弟关系加上,开发阶段非常不爽,菜单挪个层级,兄弟关系都得重新找,所以用这个ID来自动建立关系

citroen988 发表于 2020-9-2 14:42:30

了无 发表于 2020-9-2 12:03
这些ID是用来自动初始化的,自动建立兄弟关系的。不用这个ID也行,就是得初始化的时候自己把兄弟关系加上 ...



初始化的时候兄弟指针孩子指针父亲指针都是可以指定好的。


了无 发表于 2020-9-2 15:09:28

citroen988 发表于 2020-9-2 14:42
初始化的时候兄弟指针孩子指针父亲指针都是可以指定好的。




是啊,得自己手动指定,懒啊,特别是开发阶段,菜单层级一旦调整,好多地方得重新指定。

citroen988 发表于 2020-9-2 15:20:53

了无 发表于 2020-9-2 15:09
是啊,得自己手动指定,懒啊,特别是开发阶段,菜单层级一旦调整,好多地方得重新指定。 ...

菜单层级一旦调整,ID还不是得动

了无 发表于 2020-9-2 15:42:57

citroen988 发表于 2020-9-2 15:20
菜单层级一旦调整,ID还不是得动

ID好改,改个数字就行。改指针得算半天。所以有了这个ID

citroen988 发表于 2020-9-2 17:03:24

了无 发表于 2020-9-2 15:42
ID好改,改个数字就行。改指针得算半天。所以有了这个ID

指针需要算吗?

初始化的时候就指定好就是了:


MenuNode TestNode003 = {12,"节点003",NULL,NULL,NULL};
lMenuNode TestNode002 = {12,"节点002",&TestNode003,NULL,NULL};
MenuNode TestNode001 = {12,"节点001",&TestNode002,NULL,NULL};

MenuNode TestNode11 = {12,"节点十一",NULL,&TestNode001,NULL};
MenuNode TestNode10 = {12,"节点十",&TestNode11,NULL,NULL};
MenuNode TestNode9 = {12,"节点九",&TestNode10,NULL,NULL};
MenuNode TestNode8 = {12,"节点八",&TestNode9,NULL,NULL};
MenuNode TestNode7 = {12,"节点七",&TestNode8,&TestNode002,NULL};
MenuNode TestNode6 = {12,"节点六",&TestNode7,NULL,NULL};
MenuNode TestNode5 = {12,"节点五",&TestNode6,NULL,NULL};
MenuNode TestNode4 = {12,"节点四",&TestNode5,NULL,NULL};
MenuNode TestNode3 = {12,"节点三",&TestNode4,&TestNode001,NULL};
MenuNode TestNode2 = {12,"节点二",&TestNode3,NULL,NULL};
MenuNode TestNode1 = {12,"节点一",&TestNode2,NULL,NULL};

Honey_comb 发表于 2020-9-2 17:06:09

mark,菜单结构。谢谢

gududedianzi 发表于 2020-9-2 17:13:21

感谢楼主分享,现在项目正好可以参考一下。多谢

了无 发表于 2020-9-3 09:10:15

citroen988 发表于 2020-9-2 17:03
指针需要算吗?

初始化的时候就指定好就是了:


你说的这种用法刚开始就是你这么用的。因为懒所以升级成用id。各取所好吧。你想那样用就那样用呗

linbo411 发表于 2021-2-24 20:16:36

要是支持多语言切换就好了

yu2008 发表于 2021-2-24 21:16:12

mark 一下

lnso 发表于 2021-2-25 07:46:14

标记一下,有空移植

cbh 发表于 2021-2-25 08:15:08

好东西谢 谢 分 享!

QQ忘了 发表于 2021-3-11 23:43:21

感谢分享

LZ怎么不贴上几个效果图啊


citroen988 发表于 2021-3-12 09:03:25

unsigned long int ID,层级不能太多吧?

oooios 发表于 2021-3-12 10:14:22

谢谢分享学习了

hello2020 发表于 2021-3-12 10:16:57

感谢分享,学习了

lnso 发表于 2021-3-16 07:23:46

看上去挺简洁的啊

qidiao007 发表于 2021-5-31 15:57:30

收藏了 以后会用到{:lol:}

chenfzg 发表于 2021-6-1 04:56:25

可以,谢谢分享

riptell2008 发表于 2021-6-1 08:14:44

挺好的,收藏了!{:lol:}

diego2003 发表于 2021-6-3 17:34:59

mark   菜单程序!

jun427 发表于 2021-6-23 14:30:41

下载学习,

jbpan852 发表于 2022-11-8 15:50:26

请教,用IAR移植提示错误,应该是参数类型不匹配,不知道怎么解决,提示Error: a value of type "void (*)(MenuRunInfo *)" cannot be used to initialize an entity of type "void (*)(void *)"       

了无 发表于 2022-11-8 17:05:25

jbpan852 发表于 2022-11-8 15:50
请教,用IAR移植提示错误,应该是参数类型不匹配,不知道怎么解决,提示Error: a value of type "void (*)( ...
(引用自168楼)

看错误提示,是参数类型错误。确认一下Page_Main 函数的定义是否为 void Page_Main (MenuRunInfo* MenuRunInfos)

jbpan852 发表于 2022-11-8 17:30:06

了无 发表于 2022-11-8 17:05
看错误提示,是参数类型错误。确认一下Page_Main 函数的定义是否为 void Page_Main (MenuRunInfo* MenuRu ...
(引用自169楼)

是的,函数的定义没有修改,按你的代码完全移植,你用哪个编译器呢,是不是IAR需要设置什么才可以

了无 发表于 2022-11-10 13:49:17

jbpan852 发表于 2022-11-8 17:30
是的,函数的定义没有修改,按你的代码完全移植,你用哪个编译器呢,是不是IAR需要设置什么才可以 ...
(引用自170楼)

我查看了。压缩包里面的定义是好着的。不知道你工程里面是否有其他东西导致这个问题,我当时编译用的GCC

gsq19920418 发表于 2022-11-10 15:04:02

wjwjwjwj98 发表于 2019-9-10 23:08
是不是表示只取一位?
(引用自101楼)

是的,位标识

diego2003 发表于 2024-1-4 09:03:07

文件MENU损坏下载不了   能否重新上传一下   谢谢
页: 1 [2]
查看完整版本: [开源]回报论坛,开源一个自认为目前论坛最好用的菜单架构