baikal 发表于 2009-10-12 20:13:24

请教傻孩子:菜单问题

参考了你的菜单程序,使用结构体做菜单跳转。
遇到一个问题:在子菜单跳出时,总是回到其父菜单的最开始一项。我想实现退出子菜单时,选中的仍是进入子菜单时那一项。这样如果如菜单有100项,我在进入第50项的子菜单后,跳出还能在第50项。省却了我再从第一项翻到第50项的烦恼。
期待你的解答。谢谢!

Gorgon_Meducer 发表于 2009-10-12 22:15:05

增加一个额外的小一纬数组,数组中,每一个元素对应一级菜单,这个元素就是一个指针,记录
离开该级菜单时最后的一个元素。

baikal 发表于 2009-10-13 08:36:50

不好意思,不理解这段话。
增加一个额外的小一纬数组,在哪里增加?
数组中,每一个元素对应一级菜单,怎么对应起来?
这个元素就是一个指针,记录
离开该级菜单时最后的一个元素。这最后一个元素就是struct MenuItem *ParentMenus; 吧?可是怎么知道是原来选中的那一项呢?

baikal 发表于 2009-10-13 09:31:13

还需要补充一点,比如菜单项如下所示

主界面
1.abc
2.def
3.ghi   
4.jkl

选择3.ghi进入子菜单

子菜单1
1.mno
2.pqr
3.stu

选择2.pqr进入子菜单

子菜单2
1.vwx
2.yz

当我退出子菜单2,回到子菜单1时,要2.pqr突出显示;
当退出子菜单1,回到主菜单时,要3.ghi突出显示

tranquilly86 发表于 2011-11-12 16:45:53

你好!请问你这个菜单程序退出是怎么做的,我想通过按键按下ESC退出到主菜单界面,再按下ESC退出这个菜单函数,执行下面其他的语句,最后按下ESC退出菜单这个如何实现呢?

Gorgon_Meducer 发表于 2011-11-14 13:48:04

to 【4楼】 tranquilly86
    你需要增加对ESC的按键处理:
    a. 如果当前菜单有上一级菜单,则遇到ESC时直接跳回顶层菜单
    b. 如果当前菜单没有上一级菜单,则说明当前菜单就是顶层菜单,则直接退出菜单程序。
页: [1]
查看完整版本: 请教傻孩子:菜单问题