界面算法讨论

何鲁青 2005-11-10 12:26:39
大家来交流一下作界面的经验和感受把,至少我现在觉得作界面是一件及其痛苦的事情,我得做法是这样的:
用MenuState来记录现在显示那个界面,如果齐下有子界面的话就用SubMenuState来记录。在while(1)的后台轮训中,首先根据键盘输入更改MenuState和SubMenuState,然后调用显示函数刷新液晶屏的显示。
现在由于程序的显示部分比较大,我得MenuState已经从0编号到200多了,而且之间的跳转很容易就把自己绕进去了,所以一直很痛苦。
最近打算换ARM用C++来作,其他部分都已经很好的改成了C++用类来凤装了,但是对于界面的这部分一直都没有想到什么好的算法,也没有想到什么好的抽象方法。
我知道CSDN高手众多,特来和大家交流一下界面处理的算法问题。如果尤其他方面想要交流的也可一提出来,大家一起来讨论讨论,大家一起想一个好办法,节省大家的开发时间。
这是我发此贴的初衷,由于这个ID再者个区的等级太低,没有办法给更多的分,请见凉!!!
...全文
228 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
何鲁青 2005-11-18
  • 打赏
  • 举报
回复
谢谢各位的参与,我原来是用51来做的,使用状态机的概念,觉得很多重复代码,想要封装起来却又很多不能统一的东西.往后可能要转道arm上去,问了一下我们老大(做ARM现在),说是跑得操作系统,用的消息,将所有界面预先做好,然后根据消息里面穿过来得ID号,刷新显示。
不过控制界面状态转换的这块代码看来是没有什么好的办法 能够简单化了。。。
CityWanderer 2005-11-18
  • 打赏
  • 举报
回复
我也在做嵌入式系统的界面开发,我的思路是这样的:
对于每一个要显示的画面,用了一个结构来描述,结构存储了该画面的界面刷新函数指针,用户输入响应函数指针,定时器响应函数指针,还有系统消息响应函数指针。系统中有一个全局的当前窗口的结构指针,当前画面的显示和用户输入响应均由当前窗口结构指针的四个函数指针所指向的函数响应,系统有一个模块负责调度画面的调度,每个窗口都会有自己的那四个函数,没有的也可以不要,直接赋值为0即可(在用函数指针调用的时候要判断是否为0),运行的情况还好,现在没有出过大的漏子,比较头疼的是界面的美化,写程序的是不是都比较缺乏一些艺术细胞啊?功能都实现了,可界面的外观不是太好,不知道到哪里去找那些漂漂亮亮的图标。
tanyu7294 2005-11-15
  • 打赏
  • 举报
回复
把所有显示界面都用“菜单”来管理,像手机那样。
制作一个主界面,通过按下菜单键,进入菜单选项,操作时需要一层层地进入或退出,至于层数就自己定了。以后你想增加一些界面,扩展起来就非常方便。我只是给你提供思路,至于具体实现方法你先自己考虑一下。

你是在什么硬件平台上来做?51单片机还是ARM。用上面的方法比较占用ROM和RAM,但是实现起来不是太难,非常多的子界面都可以很好的管理。
何鲁青 2005-11-14
  • 打赏
  • 举报
回复
看来是没有什么好方法了.那就散分好了,欢迎接分...
wukuan 2005-11-14
  • 打赏
  • 举报
回复
界面的显示、控制要尽量的封装好,与业务层分离,然后就是画好事务的处理逻辑和状态逻辑切换图,特别注意功能和状态的从大到小的划分。没办法,要控制的东西多了,就是很烦,但是关键要理清楚。
yjhsou 2005-11-14
  • 打赏
  • 举报
回复
能不能做的想Windows那样的以消息来驱动你的界面呢?
何鲁青 2005-11-12
  • 打赏
  • 举报
回复
up一下,人气好差
hainanb 2005-11-11
  • 打赏
  • 举报
回复
同意
lanmanyinhua(只要为你) 的看法
goodluckyxl 2005-11-11
  • 打赏
  • 举报
回复
界面并不复杂 只是罗索量大
我最近正好帮别人做液晶的驱动和字库
顺变也了解到LCD显示部分
我们确定每屏幕都是按屏幕刷新重新部分数据也是整屏fresh
繁确实是繁 这个显示工作是女孩子搞的
我看了她过程惊叹她的耐心
何鲁青 2005-11-11
  • 打赏
  • 举报
回复
lanmanyinhua(只要为你)能够将你的详细思路和大家分享以下嘛,最好有例子,你说的树型结构不知道用的炼表还是用别的方法来表示他们之间的关系的,一直听说作潜入是最好不要用动态内存,否则会很浪费,所以一直都是静态分配的,不知道各位对动态分配内存有什么感觉。
yangyzqo 2005-11-10
  • 打赏
  • 举报
回复
关注
lanmanyinhua 2005-11-10
  • 打赏
  • 举报
回复
在C++里面最好做成树形数据结构,利用指针存储。

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧