[发明专利]基于递归算法实现菜单内容直接映射至树型控件中的方法无效
申请号: | 200710051937.1 | 申请日: | 2007-04-20 |
公开(公告)号: | CN101082864A | 公开(公告)日: | 2007-12-05 |
发明(设计)人: | 殷铭宏;欧阳伟;沈力军 | 申请(专利权)人: | 南昌有色冶金设计研究院 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 江西省专利事务所 | 代理人: | 胡里程 |
地址: | 330008*** | 国省代码: | 江西;36 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 递归 算法 实现 菜单 内容 直接 映射 至树型 控件 中的 方法 | ||
技术领域
本发明涉及计算机编程领域,尤其是一种基于递归算法实现菜单内容直接映射至树型控件中的方法。
背景技术
当前,在可视化编程过程中,在树型控件中完全拥有菜单控件的内容的时候,程序员一般就是单独编程,造成工作量的偏大以及难以维护。比如菜单内容改变(增加一个子菜单或删除一个菜单项目等等)的话,则树型控件为了保持一致的内容,必须重新编写树型控件中的内容。这造成了工作量的偏大以及将来程序代码维护的难度。
发明内容
本发明的目的在于提供一种基于递归算法实现菜单内容直接映射至树型控件中的方法,该可视化编程中基于递归算法实现菜单内容直接映射至树型控件中的方法 为了克服在编程过程中菜单内容的改变导致树型控件内容也随之编码的缺陷,本文采用一种基于递归算法思想的编程方法,只要在树型控件中加入该段代码,则不管菜单内容如何改变,增加子菜单或者删除一个菜单项目,那么在树型控件中自动复制菜单项目的内容。
本发明的技术方案为:一种基于递归算法实现菜单内容直接映射至树型控件中的方法,该使用递归算法通过该编程代码,能够把菜单内容映射至树型控件中去,该编程技术已被包装成一个函数,在树型控件初始化中加入该函数即可。
本发明主要采用递归算法思想解决菜单内容映射至树型控件中去。
1:递归定义在一个子程序(过程或函数)的定义中又直接或间接地调用该子程序本身,称为递归。递归是一种非常有用的程序设计方法。用递归算法编写的程序结构清晰,具有很好的可读性。递归算法的基本思想是:把规模大的、较难解决的问题变成规模较小的、易解决的同一问题。规模较小的问题又变成规模更小的问题,并且小到一定程度可以直接得出它的解,从而得到原来问题的解。
2:递归特点
(1)递归就是在过程或函数里调用自身;
(2)在使用递增归策略时,必须有一个明确的递归结束条件,称为递归出口。
3:为什么可以用递归(为了说明,采用word的部分菜单内容进行介绍)“递归”在C++中主要解决具有树型特征的算法或数据结构,递归的利用可以使算法或数据结构大大简化,代码简洁明了,相同一个具有该特性的课题采用递归或其他算法。菜单就是一个具有树型特征的数据结构,如图1:这是一个菜单
但是文件(F) 又是该菜单的一个子菜单,在文件子菜单中,其条目如图2:在该文件子菜单中,有新建、打开、关闭等菜单项目,也有权限子菜单,其条目如图3:
在权限子菜单中,有无限制的访问、不能分发...、限制权限为...等菜单项目。
所以菜单具有树型特征的数据结构(如图4),完全可以使用递归算法访问其所有条目。
在树形控件中,其控件内容也具有树型特征的数据结构。
所以我们可以用递归把两者内容联系起来。
4:技术方案的原理图及其源代码(vc编写)
该技术的源代码如下(CTreeLeft代表树型控件类):
void CTreeLeft::SubTreeRole(CMenu*pSubMenu1,HTREEITEM hSubRoot)
{
CMenu*pSubMenu=(CMenu*)pSubMenu1;
TVITEM tvitem;
TVINSERTSTRUCT tvInsert;
//子目录
tvitem.mask=TVIF_TEXT|TVIF_IMAGE|TVIF_SELECTEDIMAGE|TVIF_HANDLE;
tvInsert.hParent=hSubRoot;
tvInsert.hInsertAfter=TVI_LAST;
CMenu*m_pSubMenu;
CString m_sName; //menuitem文字
UINT m_iMenuI temState; //menuitem state状态
HTREEITEM m_hSubRoot;
int itemCount=pSubMenu->GetMenuI temCount();
int m_iPos=0;
for(int j=0;j<itemCount;j++)
{
m_iPos=0;
//得到状态值
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南昌有色冶金设计研究院,未经南昌有色冶金设计研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200710051937.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:用于运行内燃机的方法
- 下一篇:橡胶组合物、其制造方法以及轮胎