弱弱的问一声 unsigned long int Mode: 1;中冒号的作用是什么?
同问。。
虽然用不到,但是我要顶一下+1 wjwjwjwj98 发表于 2019-9-10 23:08
是不是表示只取一位?
是的,位域,定义的位数。 可以的 不错~~~~~~~~~~~~~~~ 本帖最后由 armstrong 于 2019-9-13 11:42 编辑
十四年前在PIC16单片机上用汇编实现了这样的结构,菜单资源写了个VB6程序生成。
也支持动态参数显示,和菜单条目动态增删;用于一个主机框内,插入十来个不同类型子机的UI系统。
不过汇编的复用性是在太差,没有分享的价值了。
谢谢分享,很好的资料 感谢楼主的分享
收藏备用,谢谢楼主分享 非常好的学习资料,谢谢分享!翠香还有吗 Wisen 发表于 2019-9-23 17:52
非常好的学习资料,谢谢分享!翠香还有吗
今年的完了,明年上市了我论坛和微信通知大家。这个品种产量小,还不好务。种的人少 感谢楼主分享 谢谢分享,菜单程序。 下载了,学习,谢谢分享. 必须要顶一下 必须要mark下 谢谢分享
菜单mark 感谢楼主开源分享! 记得10年前有人在论坛发过类似的模拟器和代码 感谢楼主开源分享! 感谢分享以后学习 自己做过菜单,但一直觉得自己做的不太完美,借鉴一下~ 这个很不错,感谢分享了 学习,菜单 MARKLCD菜单。。。 C小白来学习了 收藏了,谢谢楼主! 这个菜单结构也不错 收藏了,感谢楼主。 正好有时间看看,谢谢分享 学习一下,谢谢分享。 层级多了 unsigned long int ID可能不够用了啊 citroen988 发表于 2020-9-1 20:28
层级多了 unsigned long int ID可能不够用了啊
是的,当时考虑到了,不过一般应用用不到那么多层级,层级不够用的话得把ID的数据结构改一改 学习一下 了无 发表于 2020-9-2 08:34
是的,当时考虑到了,不过一般应用用不到那么多层级,层级不够用的话得把ID的数据结构改一改 ...
都有兄弟指针、孩子指针、父亲指针了,怎么还整个ID呢?
这些指针足以表述层级了啊!
跑上了GUI,比如lvgl,是否还需要这样搞菜单啊。 gmyu 发表于 2020-9-2 09:01
跑上了GUI,比如lvgl,是否还需要这样搞菜单啊。
有这种级别的GUI就完全不需要这个了 citroen988 发表于 2020-9-2 08:47
都有兄弟指针、孩子指针、父亲指针了,怎么还整个ID呢?
这些指针足以表述层级了啊!
这些ID是用来自动初始化的,自动建立兄弟关系的。不用这个ID也行,就是得初始化的时候自己把兄弟关系加上,开发阶段非常不爽,菜单挪个层级,兄弟关系都得重新找,所以用这个ID来自动建立关系 了无 发表于 2020-9-2 12:03
这些ID是用来自动初始化的,自动建立兄弟关系的。不用这个ID也行,就是得初始化的时候自己把兄弟关系加上 ...
初始化的时候兄弟指针孩子指针父亲指针都是可以指定好的。
citroen988 发表于 2020-9-2 14:42
初始化的时候兄弟指针孩子指针父亲指针都是可以指定好的。
是啊,得自己手动指定,懒啊,特别是开发阶段,菜单层级一旦调整,好多地方得重新指定。 了无 发表于 2020-9-2 15:09
是啊,得自己手动指定,懒啊,特别是开发阶段,菜单层级一旦调整,好多地方得重新指定。 ...
菜单层级一旦调整,ID还不是得动 citroen988 发表于 2020-9-2 15:20
菜单层级一旦调整,ID还不是得动
ID好改,改个数字就行。改指针得算半天。所以有了这个ID 了无 发表于 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}; mark,菜单结构。谢谢 感谢楼主分享,现在项目正好可以参考一下。多谢 citroen988 发表于 2020-9-2 17:03
指针需要算吗?
初始化的时候就指定好就是了:
你说的这种用法刚开始就是你这么用的。因为懒所以升级成用id。各取所好吧。你想那样用就那样用呗
要是支持多语言切换就好了 mark 一下 标记一下,有空移植 好东西谢 谢 分 享! 感谢分享
LZ怎么不贴上几个效果图啊
unsigned long int ID,层级不能太多吧?
谢谢分享学习了 感谢分享,学习了 看上去挺简洁的啊 收藏了 以后会用到{:lol:} 可以,谢谢分享 挺好的,收藏了!{:lol:} mark 菜单程序! 下载学习, 请教,用IAR移植提示错误,应该是参数类型不匹配,不知道怎么解决,提示Error: a value of type "void (*)(MenuRunInfo *)" cannot be used to initialize an entity of type "void (*)(void *)"
jbpan852 发表于 2022-11-8 15:50
请教,用IAR移植提示错误,应该是参数类型不匹配,不知道怎么解决,提示Error: a value of type "void (*)( ...
(引用自168楼)
看错误提示,是参数类型错误。确认一下Page_Main 函数的定义是否为 void Page_Main (MenuRunInfo* MenuRunInfos) 了无 发表于 2022-11-8 17:05
看错误提示,是参数类型错误。确认一下Page_Main 函数的定义是否为 void Page_Main (MenuRunInfo* MenuRu ...
(引用自169楼)
是的,函数的定义没有修改,按你的代码完全移植,你用哪个编译器呢,是不是IAR需要设置什么才可以 jbpan852 发表于 2022-11-8 17:30
是的,函数的定义没有修改,按你的代码完全移植,你用哪个编译器呢,是不是IAR需要设置什么才可以 ...
(引用自170楼)
我查看了。压缩包里面的定义是好着的。不知道你工程里面是否有其他东西导致这个问题,我当时编译用的GCC wjwjwjwj98 发表于 2019-9-10 23:08
是不是表示只取一位?
(引用自101楼)
是的,位标识 文件MENU损坏下载不了 能否重新上传一下 谢谢
页:
1
[2]