void CCheckOverLapDlg::TraverseTree(CTreeCtrl* pTreeCtrl)
{
CString strParent = _T("所有模板");
TraverseTreeBranch(pTreeCtrl, pTreeCtrl->GetRootItem(), TVI_ROOT, strParent, 1);
}
void CCheckOverLapDlg::TraverseTreeBranch(CTreeCtrl* pTreeCtrl, HTREEITEM hItem, HTREEITEM hParentItem, CString strParent, int iGrade)
{
BOOL bSelected = m_wndTreeCtrl.GetCheck(hItem);
CString strCurrent = m_wndTreeCtrl.GetItemText(hItem);
HTREEITEM hItemTmp = pTreeCtrl->GetChildItem(hItem);
if (hItemTmp == NULL && strCurrent != (_T("")) && strParent != _T("所有模板") && bSelected)
{
m_mapSelectedItem.insert(pair<CString, CString>(strParent, strCurrent));
m_wndTreeCtrl.DeleteItem(hItem);
}
while (hItemTmp != NULL)
{
if (iGrade == 1)
TraverseTreeBranch(pTreeCtrl, hItemTmp, TVI_ROOT, strCurrent, 2);
else if (iGrade == 2)
TraverseTreeBranch(pTreeCtrl, hItemTmp, TVI_ROOT, strCurrent, 3);
hItemTmp = m_wndTreeCtrl.GetNextSiblingItem(hItemTmp);
}
}