16,472
社区成员
发帖
与我相关
我的任务
分享
void CHMI_manView::ExpandLeftTree(char * dir)
{
// get LeftTree
CMainFrame* pMain=(CMainFrame*)AfxGetMainWnd();// m_pMainWnd;
CLeftView * pLeft=pMain->GetLeftPane();
CTreeCtrl& LeftTree=pLeft->GetTreeCtrl();
// get selected tree item
HTREEITEM hParentItem,hChildItem;
TVITEM tvi;
char tviname[MAX_PATH];
hParentItem=LeftTree.GetSelectedItem();
// if parent not expanded
if(TVIS_EXPANDED!=LeftTree.GetItemState(hParentItem,TVIF_STATE))
{ // expand
LeftTree.Expand(hParentItem,TVE_EXPAND);
}
// find which one
hChildItem=LeftTree.GetChildItem(hParentItem);
tvi.mask=TVIF_TEXT|TVIF_HANDLE;
while (hChildItem)
{
tvi.hItem=hChildItem;
strcpy(tviname,LeftTree.GetItemText(tvi.hItem));
//AfxMessageBox(tviname);
if (stricmp(tviname,dir)==0)// found
{ // expand
LeftTree.Expand(tvi.hItem,TVE_EXPAND);
// change selection
LeftTree.SelectItem(tvi.hItem);
// ensure visible
LeftTree.EnsureVisible(tvi.hItem);
}
// get new child
hChildItem=LeftTree.GetNextSiblingItem(tvi.hItem);
}
}