ctreectrl与clistctrl实现资源管理器,但是每个文件夹或者文件项前面带复选框,点击ctreectrl中的节点a时,在clistctrl中就显示a目录下的文件和文件夹,在clistctrl中点选中一项后,该项的复选框就打勾,我想实现clistctrl可以记住之前打对勾的节点,不知怎么实现
eg:点ctreectrl中的a 在clistctrl中显示1,2,3..,我选中2,则在2前面打对勾,然后选ctreectrl中的b节点,clistctrl中显示5,6,7,.,我再选ctreectrl中的a,在clistctrl中显示1,2,3..,但2之前已选择过,现在应该有对勾,怎么实现

解决方案 »

  1.   

    我的想法是定义一个链表(每个节点为一个结构体,里面存有是否选中的信息),将所有节点的子节点放到链表中,每个节点的data为其子节点在链表的起始位置,不知这种方法如何,正在试
      

  2.   

    vs2008的sp1里就自带了CMFCShellTreeCtrl和CMFCShellListCtrl, 就实现了资源管理器的功能。 sp1自带了例子和源码, 源码目录为atlmfc/src下, 自己直接用, 或者参考下重写写个也可以。