关于MFC中树形控件(CTreeCtrl)复选框(CheckBox)的显示一致性解决方案

关于MFC中树形控件(CTreeCtrl)复选框(CheckBox)的显示一致性解决方案

        树形控件在Windows系统中是很常见的控件,例如资源管理器左侧的窗口中就有用来显示目录的树形视图。树形视图中以分层结构显示数据,每层的缩进不同,层次越低缩进越多。树形控件的节点一般都由标签和图标两部分组成,图标用来抽象的描述数据,能够使树形控件的层次关系更加清晰。

1.关于MFC树形控件基础知识

  参见: VS2010/MFC编程入门之三十(常用控件:树形控件TreeControl 上)http://www.jizhuomi.com/software/200.html

  参见: VS2010/MFC编程入门之三十一(常用控件:树形控件TreeControl 下)http://www.jizhuomi.com/software/203.html

2.关于树形控件复选框显示一致性问题解决方案

(1)问题描述:使用树形控件可以清晰的显示出数据项的组织结构,同时也可以利用树形控件的复选框来表示数据项的某种属性状态。在通常情况下,复选框应具有如下显示一致性状态:

① 选中一个节点时,其所有关联子节点应均设置为选中状态;

② 选中一个节点时,若其所有子节点均为选中状态,则其父节点也应设置为选中状态,否则设置父节点为非选中状态;

但是,在MFC中关于复选框状态的获取和设置需要我们自己通过代码进行控制,同时由于数据组织的不确定性,使得复选框的显示一致性很难实现,以下为该情况提供了一种可能的解决方案。

(2)解决方案

① 建立一个基于对话框的MFC应用程序(MFCTest),在对话框上拖建一个树形控件并关联控件变量:

 



② 为树形控件添加节点





③ 为树形控件添加事件响应



关于复选框状态一致性解决函数



评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值