我用了一个tree control .利用SetItemData在节点中插入了数据。
插入的数据是一个结构体,结构体是new出来的。
在程序结束时。我要利用递归把插入的数据删除吗?

解决方案 »

  1.   

    new出来的数据要delete。TreeContral的节点不必删除。
      

  2.   

    我new 出来的数据放到了tree control 节点里面去了。那地址怎么保存,
    是要用一个数组来单独保存吗?在析构时那出来一一删除?
      

  3.   

    tree item 能放的也就是一个DWORD,4字节, 没必要用new.或者是你没表达清楚,你是把指针给item呢还是直接就是数据?
      

  4.   

    是指针给节点。我的做法是new一个结构体,把指针给节点,
    然后把地址用数组保存起来,程序结束时从数组里取出地址然后删除,
    这样做对吗?
      

  5.   

    这样可以.也可以直接利用tree item 存的那个指针,这样就不用把地址存到数组里了。
      

  6.   

    直接利用tree item 存的那个指针,会不会造成内存泄露?
      

  7.   

    这样做是没有问题的,楼上有几位可能搞混了。不过呢,最好通过响应TVN_DELETEITEM消息来销毁ItemData中的指针,这样更加合理。
      

  8.   

    new 的是要delete的
    楼主可以将GetItemData的数据再转回成指针,delete掉,再令指针=NULL。
      

  9.   

    TVN_DELETEITEM消息,是删除节点时触发,当程序关闭的时候是不是就不
    触发了,那样的话,不是造成内存泄露了吗?