WEB开发网
开发学院软件开发VC 三态选择树实现终结者 阅读

三态选择树实现终结者

 2007-10-05 20:22:20 来源:WEB开发网   
核心提示:示例代码运行效果图如下:在很多情况下,我们经常需要实现树的多态选择,三态选择树实现终结者,如上图所示,当全部子节点选中的情况下,步骤三:做节点图标和三态选择框图标一般情况下节点图标采用16×16,三态选择图标采用13×13大小比较合适,当前节点才被选中(如图示[荆门市]节点),当子节点部分选中时

示例代码运行效果图如下:

在很多情况下,我们经常需要实现树的多态选择,如上图所示,当全部子节点选中的情况下,当前节点才被选中(如图示[荆门市]节点),当子节点部分选中时,当前节点处于第三态(如图示[湖北省]节点)当全部子节点未选中时,当前节点处于未选中的状态(如图示[江苏省]节点)。本文就介绍这种三态选择树的具体实现方法。

在VC知识库第十九期中河南科技大学丛雷朋友也介绍了一种实现方法,两种方法比较,本文介绍的方法实现简单,兼容原CTreeCtrl的全部操作,CheckBox也是采用控件本身的CheckBox,只是在状态显示时重画而已。因此,本方法可以实现表示三态的情况下同时显示节点ICON图标,另增加了对CheckBox在某些节点是否显示的控制,同时增加了对键盘空格键选中、取消选中的控制。具体遍历父、子节点的方法同丛雷朋友朋友的方法类似,也是递归实现全部节点的遍历,只是优化了一些,效率更高。

下面介绍具体使用方法:

步骤一:生成一个对话框工程(示例工程CMutiTree)。

步骤二:添加树控件,按照实际需要设置所需的属性。

步骤三:做节点图标和三态选择框图标

一般情况下节点图标采用16×16,三态选择图标采用13×13大小比较合适。

三态选择图标对应: 0->无选择钮 1->没有选择 2->部分选择 3->全部选择

步骤四:将两个文件[MutiTreeCtrl.cpp ,MutiTreeCtrl.h]添加到步骤一创建的对话框

1 2 3 4 5  下一页

Tags:选择 实现 终结者

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接