天天看點

BCG項目樹結構多選删除功能實作總結

1、設定多選風格

在OnCreate(LPCREATESTRUCT lpCreateStruct)函數中設定多選風格

DWORD dwExtendedStyle=m_wndFileView.GetExtendedStyle()

|TVS_EX_DOUBLEBUFFER|TVS_EX_DRAWIMAGEASYNC|TVS_EX_MULTISELECT;

m_wndFileView.SetExtendedStyle(dwExtendedStyle,dwExtendedStyle);

2、多選後右鍵删除所選中的結點

思路:從樹的第一個結點進行周遊,判斷結點是否被選中,遇到選中的結點則進行删除,直到周遊完所有的結點。完成删除後再對樹結構進行重新整理。

void CFileView::OnDeleteAll()

{

for ( HTREEITEM hTreeItem =m_wndFileView.GetRootItem(); hTreeItem!=NULL; hTreeItem = m_wndFileView.GetNextVisibleItem( hTreeItem ) )

if (m_wndFileView.GetItemState( hTreeItem, TVIS_SELECTED ) & TVIS_SELECTED)

{

OnDelete(hTreeItem); //删除結點具體資料資訊

}

FillFileView(); //删除完成後重新整理樹結構

}

注:CViewTree m_wndFileView;其中CViewTree 類繼承的是CTreeCtrl類

繼續閱讀