C菜单界面的实现方法.ppt

上传人:汽*** 文档编号:571396113 上传时间:2024-08-10 格式:PPT 页数:15 大小:299.51KB
返回 下载 相关 举报
C菜单界面的实现方法.ppt_第1页
第1页 / 共15页
C菜单界面的实现方法.ppt_第2页
第2页 / 共15页
C菜单界面的实现方法.ppt_第3页
第3页 / 共15页
C菜单界面的实现方法.ppt_第4页
第4页 / 共15页
C菜单界面的实现方法.ppt_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《C菜单界面的实现方法.ppt》由会员分享,可在线阅读,更多相关《C菜单界面的实现方法.ppt(15页珍藏版)》请在金锄头文库上搜索。

1、菜单界面的实现方法读Gorgon Meducer 傻孩子菜单引擎菜单界面的实现方法菜单界面的实现方法建议在看下面内容之前复习一下建议在看下面内容之前复习一下C语言的如下内容语言的如下内容1、结构体、结构体2、指向函数的指针、指向函数的指针3、结构体链表、结构体链表4、傻孩子的菜单引擎傻孩子的菜单引擎菜单结构体代码菜单结构体代码struct MenuItem short MenuCount; char *DisplayString; void (*Subs)(); struct MenuItem *ChildrenMenus; struct MenuItem *ParentMenus; Null

2、; short MenuCountchar *DisplayString;void (*Subs)();struct MenuItem *ChildrenMenus;struct MenuItem *ParentMenus;struct MenuItemstruct MenuItem菜单界面的实现方法菜单界面的实现方法菜单结构体菜单结构体当前层节点数,即每层菜单最多能显示的条目数当前层节点数,即每层菜单最多能显示的条目数 目的:目的:1、在菜单读取前先读取这个菜单总共拥有的项目数,防止越界。、在菜单读取前先读取这个菜单总共拥有的项目数,防止越界。在菜单读取过程中将会有一个计数变量存储菜单移动。

3、所以需要这在菜单读取过程中将会有一个计数变量存储菜单移动。所以需要这个变量来确定移动的上界;个变量来确定移动的上界;2、可以方便的实现菜单的滚动。例如:、可以方便的实现菜单的滚动。例如:“文件文件”菜单依次下有:菜单依次下有:“打开打开”、“保存保存”、“打印打印”、“退出退出”这这4个子项,如果计数个子项,如果计数存储达到上界存储达到上界“退出退出” 即(即(MenuCount = 4)时再继续向下一级)时再继续向下一级翻页则会回到翻页则会回到“打开打开”。short MenuCountchar *DisplayString;void (*Subs)();struct MenuItem *C

4、hildrenMenus;struct MenuItem *ParentMenus;struct MenuItemstruct MenuItem菜单界面的实现方法菜单界面的实现方法菜单结构体菜单结构体指向菜单标题字符串的指针指向菜单标题字符串的指针目的:目的:指向菜单标题的字符串,指向当选中该级菜单后所要显指向菜单标题的字符串,指向当选中该级菜单后所要显示的字符串。示的字符串。short MenuCountchar *DisplayString;void (*Subs)();struct MenuItem *ChildrenMenus;struct MenuItem *ParentMenus;

5、struct MenuItemstruct MenuItem菜单界面的实现方法菜单界面的实现方法菜单结构体菜单结构体指向当前状态应该执行功能函数的指针指向当前状态应该执行功能函数的指针目的:目的:说明如果选中该级菜单应当执行什么程序,这个指针指向该项说明如果选中该级菜单应当执行什么程序,这个指针指向该项所要实现功能的函数。例如:菜单项为所要实现功能的函数。例如:菜单项为“播放播放”,则该函数指,则该函数指向向Play();();short MenuCountchar *DisplayString;void (*Subs)();struct MenuItem *ChildrenMenus;str

6、uct MenuItem *ParentMenus;struct MenuItemstruct MenuItem菜单界面的实现方法菜单界面的实现方法菜单结构体菜单结构体指向当前菜单的下级菜单指向当前菜单的下级菜单目的:目的:指向结构体指针,用于存储下一级菜单,在后面的链表中详细指向结构体指针,用于存储下一级菜单,在后面的链表中详细说明。说明。short MenuCountchar *DisplayString;void (*Subs)();struct MenuItem *ChildrenMenus;struct MenuItem *ParentMenus;struct MenuItemstr

7、uct MenuItem菜单界面的实现方法菜单界面的实现方法菜单结构体菜单结构体指向当前菜单的上级菜单指向当前菜单的上级菜单目的:目的:指向结构体指针,用于存储上一级菜单,在后面的链表中详细指向结构体指针,用于存储上一级菜单,在后面的链表中详细说明。说明。short MenuCountchar *DisplayString;void (*Subs)();struct MenuItem *ChildrenMenus;struct MenuItem *ParentMenus;struct MenuItemstruct MenuItem菜单界面的实现方法菜单界面的实现方法菜单结构体菜单结构体菜单界面

8、的实现方法菜单界面的实现方法下面以下图所示菜单结构实现为例分析结构体的实际运用:下面以下图所示菜单结构实现为例分析结构体的实际运用:Time SetVoice CenterRobot ControlFlash OptionTime SetData SetAlert SetBackVoice RecordPlayPauseVoice DeleteBackTurn LeftTurn RightGo AheadGo BackBackFlash RecordPlayPauseFlash DeleteBack菜单结构体菜单结构体菜单界面的实现方法菜单界面的实现方法首先看一下代码示例:首先看一下代码示例:

9、void RobotMenuInit(void) RobotMenu0.MenuCount = 5; RobotMenu0.DisplayString = Turn Left ; RobotMenu0.Subs = RobotTurnLeft; RobotMenu0.ChildrenMenus = &Null; RobotMenu0.ParentMenus = MainMenu; Robot Menu菜单有菜单有5个子项个子项菜单结构体菜单结构体菜单界面的实现方法菜单界面的实现方法首先看一下代码示例:首先看一下代码示例:void RobotMenuInit(void) RobotMenu0.M

10、enuCount = 5; RobotMenu0.DisplayString = Turn Left ; RobotMenu0.Subs = RobotTurnLeft; RobotMenu0.ChildrenMenus = &Null; RobotMenu0.ParentMenus = MainMenu; Robot Menu菜单的第一个子项(用一个菜单结构体实现的菜单的第一个子项(用一个菜单结构体实现的RobotMenu数组)标题为数组)标题为“Turn Left”菜单结构体菜单结构体菜单界面的实现方法菜单界面的实现方法首先看一下代码示例:首先看一下代码示例:void RobotMenuI

11、nit(void) RobotMenu0.MenuCount = 5; RobotMenu0.DisplayString = Turn Left ; RobotMenu0.Subs = RobotTurnLeft; RobotMenu0.ChildrenMenus = &Null; RobotMenu0.ParentMenus = MainMenu; Robot Menu菜单一个子项菜单一个子项“Turn Left”实现的功能函数为实现的功能函数为RobotTurnLeft();用执行函数指针指向这个函数。();用执行函数指针指向这个函数。菜单结构体菜单结构体菜单界面的实现方法菜单界面的实现方

12、法首先看一下代码示例:首先看一下代码示例:void RobotMenuInit(void) RobotMenu0.MenuCount = 5; RobotMenu0.DisplayString = Turn Left ; RobotMenu0.Subs = RobotTurnLeft; RobotMenu0.ChildrenMenus = &Null; RobotMenu0.ParentMenus = MainMenu; Robot Menu菜单一个子项菜单一个子项“Turn Left”没有子菜单,所以指没有子菜单,所以指向一个空的操作。向一个空的操作。菜单结构体菜单结构体菜单界面的实现方法菜

13、单界面的实现方法首先看一下代码示例:首先看一下代码示例:void RobotMenuInit(void) RobotMenu0.MenuCount = 5; RobotMenu0.DisplayString = Turn Left ; RobotMenu0.Subs = RobotTurnLeft; RobotMenu0.ChildrenMenus = &Null; RobotMenu0.ParentMenus = MainMenu; Robot Menu菜单一个子项菜单一个子项“Turn Left”的上一级菜单为主菜的上一级菜单为主菜单。单。菜单结构体菜单结构体菜单界面的实现方法菜单界面的实

14、现方法菜单结构体链表菜单结构体链表MainMenu04“Time Set”NullSubsTimeMenu&NullMainMenu14Voice CenterNullSubsVoiceMenu&NullMainMenu24Robot ControlNullSubsRobotMenu&NullMainMenu34Flash OptionNullSubsFlashMenu&NullTimeMenu04Time SetTimeset&NullMainMenuTimeMenu14Data SetDataset&NullMainMenuTimeMenu24Alert SetAlertset&NullMainMenuTimeMenu34BackNullSubs&NullMainMenuVoid DateSet(void);void MainMenuInit(void);void TimeMenuInit(void);由MainMenuInit(void)和TimeMenuInit(void)两个函数初始化构造两个菜单数组此时选中主菜单的Time Set选项,指针指向TimeMenu数组按菜单移动键,选中DataSet选项按下确认键后,无下一级子菜单,执行DataSet();函数

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号