最近读傻孩子的菜单程序,做了一个PPT,希望大家批评指正!
读傻孩子的一个菜单引擎,然后做了一个ppt,希望能对像我这样对菜单不太了解的朋友有个帮助,更欢迎大家批评指出其中的错误。谢谢!由于论坛原因,大家把下载文件后缀改为.ppt才能看!
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_549777.jpg
(原文件名:1.jpg)
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_549778.jpg
(原文件名:2.jpg)
菜单界面的实现方法 把后缀改成pptourdev_549774.pdf(文件大小:298K) (原文件名:菜单界面的实现方.pdf) 顶~~~~~~~~~~~ 回复【1楼】Gorgon Meducer 傻孩子
-----------------------------------------------------------------------
麻烦傻孩子帮我看看哪里有不对的地方
还有,我现在在做显示部分的PPT,希望不吝赐教!! 谢谢!! 顶一个 收藏,谢谢楼主哥,谢谢傻孩子。 支持一下~~嘿嘿 收藏,谢谢 to 【2楼】 airwolf09921
看了,内容太好了~8措~
不过最好补充一点函数指针的例子。 哈哈~ 顶~! 做的不错。哈哈! PPT做的很好.
另:把后缀名改为 .pps,双击就可以直接播放了. MARK GUI mark 主程序在哪里呀 ?哈哈!!! 回复【13楼】bynce 罗曼
-----------------------------------------------------------------------
点击这里就可以看到主程序了!
http://cache.amobbs.com/bbs_upload782111/files_28/ourdev_549789.jpg
(原文件名:3.jpg) 收藏 收藏。。。 顶,要好好做菜单啊! 记号! 不错 谢谢 PPT,做得不错。 不错 yes 为什么下载了看不了? 回复【4楼】tear086 .COM 缺氧
收藏,谢谢楼主哥,谢谢傻孩子。
-----------------------------------------------------------------------
.com缺氧;
真是无处不在哇 有意思,我以前也移植过,个人感觉把代码打印出来看看也就懂了,不难 顺便说一下哦,背景色改成白色的是不是更好 回复【27楼】cyr_hongfeng
顺便说一下哦,背景色改成白色的是不是更好
-----------------------------------------------------------------------
这个风格是学习播布客 http://www.boobooke.com/bbs/ 的 建议用空可以看看哦 也是“开源”的 呵呵 顶楼主,mark MARK 标记呵呵 真好呀 PPT,做得不错,, PPT,做得不错,, 记号 捷径啊这是,mark ding mark 真不错,MARK!! 文件好像挂掉了,下载后打不开了!!
有没有兄弟有,重新上传一下,谢谢了!! 该后缀名.PDF为.PPT即可! 倒!!谢谢楼上,OK了!! 这个绝对要顶一下!
楼主辛苦了! mark 看了一下,很不错 谢谢 顶一个 棒极了,呵呵。 希望楼主在完善一下,对结构体链表看的不是很明白 顶! 个人不太喜欢,占用内存不少。每一个菜单项至少占用了10个字节,结构体中每一项均至少占用2个字节(针对8位机,32位机则更多,多至20字节,因为内存要对齐)。对于我这种小心翼翼使用内存的家伙来说,太大了。
struct MenuItem
{
short MenuCount;
char *DisplayString;
void (*Subs)();
struct MenuItem *ChildrenMenus;
struct MenuItem *ParentMenus;
}Null;
我将写一个占用内存和Flash都较少的菜单方案,现在还在构思中,但绝对排除上面这种写法,该写法对与菜单项的状态(比如单选、复选等等)没有指示,增加的话则以消耗内存为代价。 菜单从本质上来说,只不过是一个链表。但是这个链表的写法可能千变万化。
本人曾经设想如下:
1)使用三个链表,一个表示菜单项,一个表示下拉的一组菜单,这两个都存储到Flash中去。另一个则是真正占用内存的,通过一个指针访问Flash中的菜单项。
比如菜单项
struct MenuItem{
char* DisplayString;
void (*Subs)(void); //参数void习惯加上,省得编译器发牢骚
struct MenuItems* pChildItems;
};
struct MenuItems{ //一组菜单
unsigned char Count;
struct MenuItem* pParent; //父菜单
struct MenuItem* pChildren[]; //子菜单,这里采用C99语法,可以表示不定长的结构
};
///////////////////////////////////////////
//以上内容直接硬编码存储到Flash中去,占用内存为0,内存中的数据结构如下:
struct CurrentMenuItems{ //当前处理的菜单项
unsigned char CurIndex;
const struct MenuItems* MenuItems;
};
但本人对效率一贯苛求,觉得占用还是有点大,现在正在研究更加高效的占用Flash和RAM小的结构写法。 mark 谢谢, mark学习了 mark ,下不下来,回去再看 mark 有高手开始在讨论了 不错 学习了,不错 mark 为什么下载了看不了? mark 文件好像挂掉了,下载后打不开了!!
有没有兄弟有,重新上传一下,谢谢了!! Gorgon Meducer 傻孩子大侠 :
我一直在琢磨你写的菜单结构,看你用的是结构体,里面把数据和处理数据的函数放在一个结构体里面,我百看也不能理解是怎么实现的? 这个好像是面向对象的程序设计了吧!? 可是我没有学过C++, 对面向对象的程序设计方法不理解? 你能不能详细的指导指导我们一下啊!?不胜感激!!!!!!!!!!! 感谢楼主和傻孩子的贡献 MARK GUI mark 回复【52楼】takashiki 岚月影
菜单从本质上来说,只不过是一个链表。但是这个链表的写法可能千变万化。
本人曾经设想如下:
1)使用三个链表,一个表示菜单项,一个表示下拉的一组菜单,这两个都存储到flash中去。另一个则是真正占用内存的,通过一个指针访问flash中的菜单项。
-----------------------------------------------------------------------
最近我也有研究菜单的问题
发现许多程序都要外加RAM(对于我要移植到51来说)
我想了几天
如果不适用结构体操作的话
只能使用
switch ()语句进行菜单深度,和相关函数的调用 看看 记号 马克 Gorgon Meducer 傻孩子:
傻孩子大侠,我很高兴把你的菜单结构弄懂了,非常非常的感谢你无私的帮助!是你让我从无知到有知!从迷惘到开明,再次表示衷心的感谢!
但是我碰到的一个问题是:我想实现一个3、4级或者更多级的菜单,不知道该怎么写!这个问题困扰了我很久也没办法解决!穷途之中再次想起了你!尽管很不好意思打扰大侠!不知道大侠能不能再在百忙之中抽出一点指点一二呀!多多感谢!!!! Gorgon Meducer 傻孩子:
大侠这么快就回复我了, 真是太感谢了,其实我也知道你菜单的意思了,多级的话就是再增加几个菜单结构型数组,也就是把这个链表作长一点 但是我我感觉那样的话,内存用起来就很可观了,然后我又仔细看了《一个占用内存极小的菜单实现》的那个例子,他用查索引号找对应的函数的方法,这样的话, 内存是少了, 但是改动就又很大。更何况我只是能看懂两位大侠的意思,照搬还可以,要我自己想又想不出好的办法来解决这个问题, 再三厚着脸皮来了,不知道大侠还能指点一二么?多多谢谢!!! 马克... mark mark 顶。这要做这方面的东西 怎么不能下载文件啊。 MARK 顶一个 很直观。 看看 mark 頂下! 这个给力。多谢共享!!! mark傻孩子菜单引擎 mark
菜单实现
ppt mark mark mark 这个一定要顶 mark mark mark mark!! mark 好的很啊 傻孩子现在已经毕业了吧,最近在搞些什么东西~