在TREEVIEW(有CheckBox风格)里如何实现选中子结点导致其父结点也被选中,
请给详细算法好吗??
响应TVN_SELCHANGING通知,对选中的结点,得到其父结点的HANDLE,由此设置父结点的CHECK状态。
如何实现三态选择树
http://www.vckbase.com/document/viewdoc.asp?id=601
楼上的方法有个小小的问题,不支持空格键选中
要实现这点的话,继承CTreeCtrl类,在其中处理鼠标单击和KeyDown事件就可以了。
需要的话,楼主请给我留言。我再详细说明
得到子节点的父节点HTREEITEM hParent = GetParent(hItem);
SetItemState(hParent, TVIS_SELECTED, TVIS_SELECTED)
你得同时处理键盘消息和鼠标消息,在你按下空格(或者你希望的按键或鼠标点击)的时候,取得该节点的父节点,然后设置check状态,至于设置子节点的状态其实也是一样的,遍历该节点的所有子节点设置状态就行