VC++ CListTree遍历所有节点

    技术2022-07-10  103

    1、释放节点及所有子节点数据(T表示节点存储的数据类型)

    template<typename T> void FreeAllItemsData(_In_ HTREEITEM hItem) { if (hItem == NULL) return; T* pData = (T*)m_Tree.GetItemData(hItem); if (pData) { delete pData; pData = NULL; } HTREEITEM hChild = m_Tree.GetChildItem(hItem); FreeAllItemsData<T>(hChild); HTREEITEM hNextSibling = m_Tree.GetNextSiblingItem(hItem); FreeAllItemsData<T>(hNextSibling); }

    2、释放节点及所有子节点   

    void DeleteAllItems(_In_ HTREEITEM hItem) {     if (hItem == NULL)         return;     HTREEITEM hChild = m_Tree.GetChildItem(hItem);     DeleteAllItems(hChild);     HTREEITEM hNextSibling = m_Tree.GetNextSiblingItem(hItem);     DeleteAllItems(hNextSibling); m_Tree.DeleteItem(hItem); }

     

    Processed: 0.041, SQL: 9