搜索
bottom↓
12
返回列表 发新帖
楼主: guxingganyue

【菜单架构讨论】所有页面同一个级别好还是分层次按逻...

  [复制链接]

出10入0汤圆

发表于 2015-1-15 15:27:42 | 显示全部楼层
我等菜鸟,看的一头雾水,暂时还是用傻孩子的菜单方式吧

出0入0汤圆

发表于 2015-1-24 09:33:10 | 显示全部楼层
想请教一下88楼在应用傻孩子菜单时的一点问题,向你学习
                 if ((UserChoose < DisplayStart) || (UserChoose > (DisplayStart+3)))
                 {
                    DisplayStart = UserChoose;
                  }
上面(UserChoose > (DisplayStart+3))时DisplayStart = UserChoose,在新的一“页”里面显示多余四行的内容没有问题,
在(UserChoose < DisplayStart)时DisplayStart = UserChoose,是直接由下一页到上一页的最底下一行,这样前面这页的上面三行就没有显示,是不是跳过来时整屏刷新显示上面的三行内容啊?在每一行选中时是整屏刷新还是只是改动的部分刷新啊,整屏刷新感觉有点多余。

出0入0汤圆

发表于 2015-1-28 15:11:15 | 显示全部楼层
绝顶高手之间的对决,标记

出0入0汤圆

发表于 2015-1-31 16:02:15 | 显示全部楼层
收藏!

出0入8汤圆

发表于 2015-1-31 17:07:52 | 显示全部楼层
mcu_lover 发表于 2014-5-31 15:34
你举得这个例子非常好。代表了典型的手工菜单设计。把手工菜单的缺点表现的淋漓尽致。
你这种方法是最传 ...

老大,看你的帖子尽是经典之作,有没有案例看下,其中的工具是如何搞得,希望多指教!

出0入0汤圆

发表于 2015-1-31 23:50:07 | 显示全部楼层
马上也要做菜单了,和这些比我原来的构思太简单了,先学习吧,谢谢提供这么好的信息。

出0入0汤圆

发表于 2015-2-3 15:22:54 | 显示全部楼层
做菜单确实头疼,我也来学习下

出0入0汤圆

发表于 2015-2-5 13:23:44 | 显示全部楼层
本帖最后由 Zigbee2012 于 2015-2-5 13:35 编辑
mikal 发表于 2014-5-29 17:18
其实,你做到工具化,肯定值得我们去学习。但是,所谓手工,我们之间的认知可能不一样!

你给的链接,其 ...


请教下   G_stWin是干什么的?  给点提示吧
-----------修改 问题----------------------
谢谢!

出0入0汤圆

发表于 2015-2-9 17:44:53 | 显示全部楼层
本帖最后由 Zigbee2012 于 2015-2-9 17:47 编辑
Zigbee2012 发表于 2015-2-5 13:23
请教下   G_stWin是干什么的?  给点提示吧
-----------修改 问题----------------------
谢谢! ...


多谢提醒!!!结构出来  这样的确清晰些
----------------------------------------------------
回错了,不好意思


出0入36汤圆

发表于 2015-2-10 09:48:48 | 显示全部楼层
红金龙兄看了你的csdn专栏,可以考虑出书普及下你的思想.让更多学子受益.

出0入0汤圆

发表于 2015-3-18 09:46:35 | 显示全部楼层
菜单mark

出0入0汤圆

 楼主| 发表于 2015-4-13 15:30:19 | 显示全部楼层
mcu_lover 发表于 2014-6-3 14:51
你应该是明白了我的界面构架。而非菜单构架。菜单在我这里已经只是属于一个部件。就像windows 上面的一个 ...

今天又读了一下这个,有几个情况 @mcu_lover 看看我理解的是否正确:

1、之前你和 @mikal 一直讨论的:手工编码和自动化设计,你侧重的是找一个电脑软件,在电脑
上把要显示的页面设计、模拟运行正确后点击生产代码或工程,这样生产的代码就可以直接在硬件
上运行,且效果和在电脑上模拟出的一样。在这个问题上,并没有讨论页面[菜单或界面]的架构设
计。只是说了谁好谁若,mikal 说的和你说的好像不是一个事。

2、不会上位机编程实现自动生成代码或没有相关软件的人,就没有办法享受你的自动化设计了,
还得手动在液晶上调整显示内容、位置,下载,观察,改代码,下载,在看。。。



3、关于你的界面菜单架构思想:

1> 理解1:所有页面(比如说下面的这10个页面)的显示与处理[字符等的静态显示和部分容的动态
显示(就是需要变化的内容)]都写在一个UINullScreen(),需要静态显示的进MSG_UI_ENTER_SCREEN
状态处理,动态显示的在按键消息后处理。其他消息进相应的状态处理。

我的问题是:每个页面传入的消息的意义是不同的,比如说在A页面中g消息是让第二行反白显示,
而在B页面中同样是g消息,我要让第三行反白,在多个页面时,相同的消息进入case后,你是不是
要分页面处理呢?如果不分页面处理,那多个页面的消息怎么区分开来呢?


2> 如果理解1成立的话,那么这个结构和原始的switch case结构又有点相似了。如果不成立,那
么,理解2:每个页面都会有一个这样的消息处理函数,这样的话还得有一个上层的状态机或其他
[比如说一个占用内存极少的菜单实现中的那个结构体]来调用这些消息处理函数,这样是不是又回
去了?









本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入264汤圆

发表于 2015-4-13 22:09:36 | 显示全部楼层
guxingganyue 发表于 2015-4-13 15:30
今天又读了一下这个,有几个情况 @mcu_lover 看看我理解的是否正确:

1、之前你和 @mikal 一直讨论的: ...

第1,2两点,不过多补充了。
第三点:
1. 静态显示,可以在进入屏幕时候处理,也可以屏幕绘制消息里面进行处理(绘制时候根据不同的标志进行不同绘制动作,属于优化范畴,即只刷新变化部分)。
不同页面,对于消息的响应都是不一样的。如果一样,那么它们应该可以合并为一个页面。这也是分页面处理的好处所在。首先规划自己系统所需要显示的页面。
然后将具有共性的页面看能否合并成一个页面。这样分析处理完毕之后,每个页面的功能都应该是独立而且唯一的。这样不同的功能就只会在对应的某一个唯一的
页面进行处理。所以,不同的页面,会接收到相同/不相同的消息,但是它们对消息的处理是完全不一样的(因为之前我们在划分页面时候,已经确定了不同页面,是没有共性的)。

2. 确实有一个消息分发函数,负责管理所有的页面,以及页面的切换。不要想那么复杂。分成活动页面/非活动页面, 以及子页面即可。当前消息先投递到子页面,如果子页面没有处理。
则接着投递到活动页面。页面的切换,很简单,用函数指针指向不同的页面即可。
论坛的所有菜单类型只有两种,一种是傻孩子为代表的链表型,一种是占用内存极少的状态跳转型。各有各的适用的地方,当然也各有各的缺点。
如果你能真正分析懂上面两种,然后再结合实际情况,多做一些案子。也许就会对基于页面的界面设计有更清晰的认识。


最后,你可以阅读我的另外一个帖子:
裸机界面开发
仔细阅读每一楼,其中有楼层提问,我都尽可能的给出了回复,以及图片示例。也有坛友,通过一步步的指点,自己摸索出来了程序结构。相信你自己思考,然后动手实践之后,也会有所收获。
综合这两个帖子,除了消息分发函数没有给出具体代码之外,其它的,基本都给出来了。基本的框架也都出来了。如果有一定基础,相信能够建立自己的框架。思想最重要。

出0入0汤圆

 楼主| 发表于 2015-4-14 08:59:59 | 显示全部楼层
mcu_lover 发表于 2015-4-13 22:09
第1,2两点,不过多补充了。
第三点:
1. 静态显示,可以在进入屏幕时候处理,也可以屏幕绘制消息里面进 ...

嗯,好的,我再仔细读一下这几个帖子。

感谢 @mcu_lover 仔细的回复。

出0入0汤圆

 楼主| 发表于 2015-4-14 09:00:46 | 显示全部楼层
mcu_lover 发表于 2015-4-13 22:09
第1,2两点,不过多补充了。
第三点:
1. 静态显示,可以在进入屏幕时候处理,也可以屏幕绘制消息里面进 ...

嗯,好的,我再仔细读一下这几个帖子。

感谢 @mcu_lover 仔细的回复。

出0入0汤圆

发表于 2015-4-14 09:02:40 | 显示全部楼层
都什么年代了,还用这个屏,直接换LCD吧,上Qt5吧。所有麻烦都解决。

出0入0汤圆

发表于 2015-4-14 21:07:31 | 显示全部楼层
不错的贴子,mark.  每次都搞很长时间,还改,自己都不满意,原来有工具辅助,学习了。

出0入0汤圆

发表于 2015-6-2 17:52:15 | 显示全部楼层
这个帖子非常好!!!!全部看完,还有部分没有深刻理解,mark,有机会再看!

出0入0汤圆

发表于 2015-6-18 07:49:56 来自手机 | 显示全部楼层
这个帖子非常好!!!!全部看完,

出0入0汤圆

发表于 2015-8-25 14:23:56 | 显示全部楼层
kinsno 发表于 2014-5-28 17:46
红金龙,你啥也不说了,  看来你的文本设计器是成功了撒! 你是有这东西,所以你说有自动化设计,  但没有的人 ...

的确 我们都没工具用 只能码完 烧写然后看,再说给我们工具 我们也未必见的会用啊 没经过别人指导谁知道怎么用呢 不知道我说的对不对 当然金龙大哥在这方面的确很牛我 承认 我看过他好多文章 但是我都吃不透

出0入0汤圆

发表于 2015-8-25 18:53:41 | 显示全部楼层
keyScan, keyEvent, display, display_cartoon, 这些模块我用menu & pop(自定义的一个专门应付弹框应用,实际上是另一套menu,不过优先级高,最近刚刚生成这个pop,还不甚完善)贯通,这些对无系统的应用足够了,有系统的没用过不知是怎样的

出0入0汤圆

发表于 2015-12-3 17:19:00 | 显示全部楼层
guxingganyue 发表于 2015-4-13 15:30
今天又读了一下这个,有几个情况 @mcu_lover 看看我理解的是否正确:

1、之前你和 @mikal 一直讨论的: ...

说中了 ,我就是用结构体的方式 ,但随着页面越来越多,需要处理按键也越多,写着写着,发现退回到switch case了。

出0入0汤圆

发表于 2017-4-4 20:47:43 | 显示全部楼层
多谢分享,学习了!

出0入0汤圆

发表于 2018-3-22 17:24:47 | 显示全部楼层
mcu_lover 发表于 2014-5-28 15:44
2K RAM 做菜单,太阔绰了吧。
如果真有2K资源可以供菜单模块使用,菜单可以做的非常灵活,可以完全按照WI ...

您好!你的工具可以发我一份吗?金龙大哥

出0入0汤圆

发表于 2018-6-1 10:24:29 | 显示全部楼层
这个帖子非常好!!!!

出0入0汤圆

发表于 2018-6-2 16:53:15 | 显示全部楼层
喜欢这样的帖子~

出50入58汤圆

发表于 2018-7-19 23:14:52 来自手机 | 显示全部楼层
看了一遍,收益匪浅

出0入0汤圆

发表于 2018-7-20 15:16:40 | 显示全部楼层
本帖最后由 dengfeng5357 于 2018-7-20 15:17 编辑

看了好久,受益匪浅。

出0入0汤圆

发表于 2019-7-27 17:32:54 | 显示全部楼层
mark,菜单备查

出0入0汤圆

发表于 2020-3-24 17:17:27 | 显示全部楼层
确实厉害,点赞

出0入0汤圆

发表于 2020-6-28 15:55:39 | 显示全部楼层
厉害的大师
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-29 09:49

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表