版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、菜单界面的实现方法读Gorgon Meducer 傻孩子菜单引擎,菜单界面的实现方法,建议在看下面内容之前复习一下C语言的如下内容 1、结构体 2、指向函数的指针 3、结构体链表 4、傻孩子的菜单引擎,菜单结构体代码 struct MenuItem short MenuCount; char *DisplayString; void (*Subs)(); struct MenuItem *ChildrenMenus; struct MenuItem *ParentMenus; Null;,菜单界面的实现方法,菜单结构体,当前层节点数,即每层菜单最多能显示的条目数 目的: 1、在菜单读取前先读取
2、这个菜单总共拥有的项目数,防止越界。在菜单读取过程中将会有一个计数变量存储菜单移动。所以需要这个变量来确定移动的上界; 2、可以方便的实现菜单的滚动。例如:“文件”菜单依次下有:“打开”、“保存”、“打印”、“退出”这4个子项,如果计数存储达到上界“退出” 即(MenuCount = 4)时再继续向下一级翻页则会回到“打开”。,菜单界面的实现方法,菜单结构体,指向菜单标题字符串的指针 目的: 指向菜单标题的字符串,指向当选中该级菜单后所要显示的字符串。,菜单界面的实现方法,菜单结构体,指向当前状态应该执行功能函数的指针 目的: 说明如果选中该级菜单应当执行什么程序,这个指针指向该项所要实现功能
3、的函数。例如:菜单项为“播放”,则该函数指向Play();,菜单界面的实现方法,菜单结构体,指向当前菜单的下级菜单 目的: 指向结构体指针,用于存储下一级菜单,在后面的链表中详细说明。,菜单界面的实现方法,菜单结构体,指向当前菜单的上级菜单 目的: 指向结构体指针,用于存储上一级菜单,在后面的链表中详细说明。,菜单界面的实现方法,菜单结构体,菜单界面的实现方法,下面以下图所示菜单结构实现为例分析结构体的实际运用:,Time Set,Voice Center,Robot Control,Flash Option,菜单结构体,菜单界面的实现方法,首先看一下代码示例:,void RobotMenuI
4、nit(void) RobotMenu0.MenuCount = 5; RobotMenu0.DisplayString = Turn Left ; RobotMenu0.Subs = RobotTurnLeft; RobotMenu0.ChildrenMenus = ,Robot Menu菜单有5个子项,菜单结构体,菜单界面的实现方法,首先看一下代码示例:,void RobotMenuInit(void) RobotMenu0.MenuCount = 5; RobotMenu0.DisplayString = Turn Left ; RobotMenu0.Subs = RobotTurnLe
5、ft; RobotMenu0.ChildrenMenus = ,Robot Menu菜单的第一个子项(用一个菜单结构体实现的RobotMenu数组)标题为“Turn Left”,菜单结构体,菜单界面的实现方法,首先看一下代码示例:,void RobotMenuInit(void) RobotMenu0.MenuCount = 5; RobotMenu0.DisplayString = Turn Left ; RobotMenu0.Subs = RobotTurnLeft; RobotMenu0.ChildrenMenus = ,Robot Menu菜单一个子项“Turn Left”实现的功能函
6、数为RobotTurnLeft();用执行函数指针指向这个函数。,菜单结构体,菜单界面的实现方法,首先看一下代码示例:,void RobotMenuInit(void) RobotMenu0.MenuCount = 5; RobotMenu0.DisplayString = Turn Left ; RobotMenu0.Subs = RobotTurnLeft; RobotMenu0.ChildrenMenus = ,Robot Menu菜单一个子项“Turn Left”没有子菜单,所以指向一个空的操作。,菜单结构体,菜单界面的实现方法,首先看一下代码示例:,void RobotMenuInit(void) RobotMenu0.MenuCount = 5; RobotMenu0.DisplayString = Turn Left ; RobotMenu0.Subs = RobotTurnLeft; RobotMenu0.ChildrenMenus = ,Robot Menu菜单一个子项“Turn Left”的上一级菜单为主菜单。,菜单结构体,菜单界面的实现方法,菜单结构体链表,Void DateSet(void);,void MainMenuInit(void);,void TimeMenuInit(void);,由MainMenuInit(void)和TimeMen
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川泸州市龙马潭区第二人民医院招收见习人员23人笔试模拟试题及答案解析
- 2026重庆飞驶特人力资源管理有限公司成都分公司外派至四川某高速公路运行监测调度中心监控员招聘2人笔试参考题库及答案解析
- 2026中国科大基本建设处劳务派遣岗位招聘4人笔试模拟试题及答案解析
- 2026上海市商业学校工作人员公开招聘笔试备考题库及答案解析
- 2026年云南国土资源职业学院单招职业适应性测试题库附答案详细解析
- 2026中华全国总工会所属事业单位面向社会招聘22人笔试备考题库及答案解析
- 2026年3月广东广州市天河第三实验幼儿园编外聘用制专任教师招聘1人笔试备考试题及答案解析
- 2026广东第二师范学院B类岗位管理人员招聘3人笔试备考试题及答案解析
- 2026年浙教版重点名校初三下学期教学质量监测(一)英语试题试卷含解析
- 河北省石家庄市新乐市重点名校2026年初三5月阶段性教学质量检测试题英语试题理含解析
- 数据中心供配电系统概述
- 印前处理人员基础技能培训手册
- 透析用水与透析液管理
- DB4201T 574-2019 武汉市优 秀历史建筑保护修缮技术规程
- DB1405∕T 045-2023 乡土树种选用指南
- DB42T 1419-2018 河蟹池塘“3 5”养殖模式技术规程
- DB14∕T 3234-2025 行政事业单位办公区后勤服务评价规范
- 科学四年级下册人教鄂教版《一天的气温》教学设计(表格式)
- DBJD25-67-2019甘肃省建筑与装饰工程预算定额地区基价不含税中册
- 基于核心素养的阅读教学体系构建与实践探索
- 电能计量装置错误接线分析-高压三相三线电能表错误接线分析
评论
0/150
提交评论