一种多级菜单实现方法技术

技术编号:2833465 阅读:291 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种多级菜单实现方法,包括以下步骤:a.定义一组菜单资源数组,其中每个菜单资源数组保存有一级菜单创建时所需的资源信息,包含该级菜单资源指针、下级菜单资源指针;b.根据第一级菜单资源数组创建第一级菜单,并根据该数组中的下一级菜单资源指针找到第二级菜单资源数组,据此数组创建第二级菜单;c.依步骤b中所述方法根据菜单资源数组逐级创建其它各级菜单。本发明专利技术通过定义一组带有父子关系的菜单资源指针的菜单资源数组及一公用的动态内存来实现菜单的层级关系控制及菜单功能处理,对这些菜单采取逐级进入和逐级销毁策略,可以定义任意深度的菜单,降低设计人员的工作量,同时也保证了菜单的灵活性。

【技术实现步骤摘要】

本专利技术涉及计算机应用领域,特别是应用于电子设备的一种多级菜单的实现方法。
技术介绍
在一些常见的采用嵌入式系统的嵌入式产品设备中,如手机、PDA、信息家电等,设备所具有的功能一般都会以菜单方式展示给用户,而且菜单通常都会分为几级菜单,设计人员在进行菜单设计时常会遇到几级菜单都具有相同的风格,这种相同风格的菜单设计方式会各有特点。但是怎样做,通常比较复杂,设计人员的工作量比较大。
技术实现思路
本专利技术要解决的技术问题是提供,降低设计人员的工作量。 为解决上述技术问题,本专利技术的目的是通过以下技术方案实现的。 ,包括以下步骤 a定义一组菜单资源数组,其中每个菜单资源数组保存有一级菜单创建时所需的资源信息,包含该级菜单资源指针、下级菜单资源指针; b根据第一级菜单资源数组创建第一级菜单,并根据该数组中的下一级菜单资源指针找到第二级菜单资源数组,据此数组创建第二级菜单; c依步骤b中所述方法根据菜单资源数组逐级创建其它各级菜单。 其中,所述菜单资源数组还包括父菜单资源指针、裁剪标识、功能函数指针及子功能函数的识别标识。 其中,所述方法还包括申请一块动态内存,用来保存当前菜单的菜单资源指针及裁剪标识;其中,当前菜单是指显示在最前端的菜单。 其中,所述方法还包括显示第n级菜单时,将其菜单资源指针保存到所述动态内存中,替换掉之前保存的第n-1级菜单资源指针。 其中,所述步骤c之后还包括从子菜单到父菜单逐级销毁各级菜单,销毁方法进一步包括 ①销毁第n级菜单,所述第n级菜单为当前菜单; ②从动态内存中获取第n级菜单的菜单资源指针,再根据该指针找到第n级菜单对应的菜单资源数组,从中获取父菜单资源指针,将其保存于动态内存中,替换掉之前保存的第n级菜单资源指针。 其中,所述方法还包括从外部输入裁剪标识,判断该裁剪标识是否与动态内存中保存的裁剪标识相同,若相同,则隐藏当前菜单。 以上技术方案可以看出,本专利技术具有以下有益效果 本专利技术通过定义一组带有父子关系的菜单资源指针的菜单资源数组及一公用的动态内存来实现菜单的层级关系控制及菜单功能处理,对这些菜单采取逐级进入和逐级销毁策略,可以定义任意深度的菜单,降低设计人员的工作量,同时也保证了菜单的灵活性。 附图说明 图1是菜单逐级创建示意图; 图2是菜单资源的定义格式示意图; 图3是菜单未被隐藏的效果示意图; 图4是菜单被隐藏的效果示意图; 图5是菜单公用内存结构示意图; 图6是三级菜单父子关系结构示意图; 图7是动态内存数据变化过程示意图。 具体实施例方式 为便于对本专利技术进一步理解,现结合附图对本专利技术进行详细描述。 本专利技术的核心思想为通过定义一组带有父子关系的菜单资源指针的菜单资源数组及一公用的动态内存来实现菜单的层级关系控制及菜单功能处理。 上述方法中,多级菜单的窗口是逐级创建的,进入新的子菜单,则创建一个新窗口覆盖旧窗口;菜单的返回也是逐层销毁返回的,上层的窗口销毁后,下层的窗口显示出来成为当前的窗口;各层窗口从第1层到第n层是从属关系,多级菜单具有第1级菜单、第2级菜单、第3级菜单......第n级菜单(n≥2自然数),第n-1菜单是第n级菜单的父菜单,即第n级菜单是第n-1级菜单的子菜单。各级菜单都具有一个菜单资源数组,所有的菜单共用一个动态内存,各级的菜单资源数组包括如下信息菜单资源指针、父菜单资源指针及裁剪标识,通过该菜单资源指针可以获取其对应的菜单,通过该父菜单指针可以获得该级菜单的父菜单,该裁剪标识是用于判断该菜单是否隐藏。动态内存中存储有当前的菜单资源指针及当前的裁剪标识,该当前的菜单是指处于显示顶端的菜单。 该多级菜单的实现方法包括以下几个进程 当显示第n级菜单的时候,该第n级菜单对应的菜单资源指针作为当前菜单的菜单资源指针; 当销毁第n级菜单的时候,将所显示的第n-1级菜单对应的菜单资源指针作为当前菜单的菜单资源指针; 当外部输入的裁剪标识与第n级菜单的裁剪标识相吻合时,将第n级菜单隐藏。 以下为本专利技术的具体实施方式,下面将用程序设计语言C来表述其设计思想。 一、格式定义 (1) typedef union{ structT_MENUITEM*ptNextMenu;//父、子菜单指针 void(*pFunc)(HWND hOwnerWnd,BYTE*pcChoice);//菜单功能函数指针 }U_NEXTMENU; 这里定义了一个联合体格式,其成员可以是菜单指针或菜单项功能函数指针,即其内容要么指向其下级或上级菜单,要么指向该菜单项的功能函数执行体。这个定义将在下面的菜单资源定义格式中引用。 (2) #define SETMENUS_NORMAL 0x0000 //普通风格 #define SETMENUS_ONOFF 0x0001 //带开关图标风格 这里定义了菜单项风格标识,其字低8位有效 typedef struct{ DWORD dwItemNameID;//菜单项名称资源ID WORDwItemStyle; //菜单及菜单项的风格标识 BYTEucIfSubmenu; //子菜单标识(TRUE==uNext指针所指是子菜单)或子菜单功能ID(总体信息中) U_NEXTMENU uNext;//父或子菜单指针或菜单功能函数指针 }T_MENUITEM,*PMENUITEM; 这里定义一种菜单结构类型,从上到下其成员含义是第一项dwItemNameID代表着该级菜单或该菜单项的名称编号(ID),使用这个编号的好处是能够通过该编号去取得对应语言环境中的相应字符串资源,可以使菜单应用于不同的语言环境中,而其定义可能保持不变。第二项wItemStyle代表着该级菜单或该菜单项的风格标识及裁剪标志,此项是一个WORD类型,分成两个字节,其中高16位是裁剪标志,低16位是风格标识。第三项ucIfSubmenu决定着第四项成员的含义,当第三项内容不等于零时,则第四项成员是一个子菜单指针;当第三项内容等于零时,则第四项成员是该菜单项的功能函数指针,如图2所示。 (3) typedef struct{ constT_MENUITEM*ptTheMenu; //当前菜单资源指针 WORD wOptionFlg; //菜单项的裁剪标志 }T_SETMENUINFOR; 这里定义了一种结构类型,由上到下其成员含义是第一项ptTheMenu代表屏幕上当前所显示的某级菜单的资源指针,第二项wOptionFlg代表菜单项的裁剪标志。此标志为WORD类型,占两个字节内存,仅高16位内容表示裁剪状态标志。低16位含义当前保留,方便设计人员扩展。 二、菜单资源实体定义举例 下面以一个手机中的“系统设置”菜单资源定义实例来更详细说明上述格式定义的含义与用法,菜单资源定义好后具体的装载和显示不做限制,用任何方法实现都可以。菜单是逐级进入和逐级销毁的,如图1所示。 #define TRUE 1 #define FALSE 0 菜单项裁剪标志,无SIM卡 #define ITEMS_NOSIM0x0本文档来自技高网...

【技术保护点】
一种多级菜单实现方法,其特征在于,包括以下步骤:    a:定义一组菜单资源数组,其中每个菜单资源数组保存有一级菜单创建时所需的资源信息,包含该级菜单资源指针、下级菜单资源指针;    b:根据第一级菜单资源数组创建第一级菜单,并根据该数组中的下一级菜单资源指针找到第二级菜单资源数组,据此数组创建第二级菜单;    c:依步骤b中所述方法根据菜单资源数组逐级创建其它各级菜单。

【技术特征摘要】
1.一种多级菜单实现方法,其特征在于,包括以下步骤a定义一组菜单资源数组,其中每个菜单资源数组保存有一级菜单创建时所需的资源信息,包含该级菜单资源指针、下级菜单资源指针;b根据第一级菜单资源数组创建第一级菜单,并根据该数组中的下一级菜单资源指针找到第二级菜单资源数组,据此数组创建第二级菜单;c依步骤b中所述方法根据菜单资源数组逐级创建其它各级菜单。2.如权利要求1所述多级菜单实现方法,其特征在于,所述菜单资源数组还包括父菜单资源指针、裁剪标识、功能函数指针及子功能函数的识别标识。3.如权利要求2所述多级菜单实现方法,其特征在于,所述方法还包括申请一块动态内存,用来保存当前菜单的菜单资源指针及裁剪标识;其中,当前菜单是指显示在最前端的菜单。4....

【专利技术属性】
技术研发人员:曾志刚
申请(专利权)人:康佳集团股份有限公司
类型:发明
国别省市:94[]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1