背景:用CTreeCtrl实现2级的数据选择/显示
第一级数据称为根节点数据(根条目), 每个根条目可以拥有若干个子节点数据(子条目), 共2级
CTreeCtrl构造时,使用TVS_HASBUTTONS属性, 使CTreeCtrl在每个条目右边显示一个复选框(checkbox)要求:1)当一个根条目下所有的子条目都被选中时, 则相应根条目的复选框自动显示成 选中状态.(checked)
2)当一个根条目下所有的子条目都没有选中时,则相应根条目的复选框自动显示成 未选中状态(unchecked).
3)当一个根条目下部分子条目被选中时, 则相应根条目的复选框自动显示成 部分选中状态(part checked).以上功能1)2)可以通过调用成员函数 SetCheck()/GetCheck()设置CTreeCtrl条目的checked/unchecked状态来实现, 但功能 3)part checked状态必须通过扩展CTreeCtrl来实现, 例如复选框显示为选中状态(checked),但颜色显示成深灰色,以和选中状态(checked)相区别.请问, 如何扩展CTreeCtrl,可以实现以上3态checkbox效果?
谢谢!
第一级数据称为根节点数据(根条目), 每个根条目可以拥有若干个子节点数据(子条目), 共2级
CTreeCtrl构造时,使用TVS_HASBUTTONS属性, 使CTreeCtrl在每个条目右边显示一个复选框(checkbox)要求:1)当一个根条目下所有的子条目都被选中时, 则相应根条目的复选框自动显示成 选中状态.(checked)
2)当一个根条目下所有的子条目都没有选中时,则相应根条目的复选框自动显示成 未选中状态(unchecked).
3)当一个根条目下部分子条目被选中时, 则相应根条目的复选框自动显示成 部分选中状态(part checked).以上功能1)2)可以通过调用成员函数 SetCheck()/GetCheck()设置CTreeCtrl条目的checked/unchecked状态来实现, 但功能 3)part checked状态必须通过扩展CTreeCtrl来实现, 例如复选框显示为选中状态(checked),但颜色显示成深灰色,以和选中状态(checked)相区别.请问, 如何扩展CTreeCtrl,可以实现以上3态checkbox效果?
谢谢!
http://www.codeguru.com/Cpp/controls/treeview/misc-advanced/article.php/c3983/
http://www.codeguru.com/Cpp/controls/treeview/misc-advanced/article.php/c701/http://www.codeguru.com/Cpp/controls/treeview/misc-advanced/article.php/c735/
http://www.vckbase.com/document/viewdoc/?id=665
真的没想到, 谢谢以上各位的回答我先研究一下各位的方法是否可以实现我的需求.nineclock(我又饿了):
我的mail地址 [email protected]
先谢了.