// 모든 트리노드를 펼친다. void CPanelBase::ExpandAll(CTreeCtrl &treeCtrl) { HTREEITEM hRoot = treeCtrl.GetRootItem(); vector<HTREEITEM> items; items.reserve(treeCtrl.GetCount()); items.push_back(hRoot); while (!items.empty()) { HTREEITEM hItem = items.back(); items.pop_back(); treeCtrl.Expand(hItem, TVE_EXPAND); HTREEITEM hfirstChild = treeCtrl.GetChildItem(hItem); if (hfirstChild) { items.push_back(hfirstChild); while (HTREEITEM hNextItem = treeCtrl.GetNextSiblingItem(hfirstChild)) { items.push_back(hNextItem); hfirstChild = hNextItem; } } } treeCtrl.SelectSetFirstVisible(hRoot); }