我现在就想在CTreeCtrl控件中,用鼠标右键单击某一个节点而获得它的全路径,现在我只能够获得当前点击的节点的名称,而获不到全路径,比如在HKEY_CURRENT_USER中下的AppEvents
我用鼠标右键点击AppEvents
而获取到下面的路径
HKEY_CURRENT_USER\AppEvents
求高手帮小弟解决
我用鼠标右键点击AppEvents
而获取到下面的路径
HKEY_CURRENT_USER\AppEvents
求高手帮小弟解决
void CLeftView::GetTreePath(const TVITEM *ptvi,char *pbuf)
{
CTreeCtrl& LeftTree=this->GetTreeCtrl(); HTREEITEM hParentItem;
TVITEM tvi;
char tviname[MAX_PATH];
char treepath[MAX_PATH];
char drivename[MAX_PATH];
char tmp[MAX_PATH];
// make a copy of ptvi
memcpy(&tvi,ptvi,sizeof(TVITEM));
memset(drivename,0,sizeof(drivename));
memset(treepath,0,sizeof(treepath));
hParentItem=tvi.hItem;// init
while (hParentItem)
{
tvi.hItem=hParentItem;// initilized !
tvi.mask=TVIF_TEXT;
tvi.pszText=tviname;
tvi.cchTextMax=MAX_PATH;
strcpy(tviname,LeftTree.GetItemText(tvi.hItem));
if (strlen(treepath)) sprintf(tmp,"%s\\%s",tviname,treepath);
else sprintf(tmp,"%s",tviname);
strcpy(treepath,tmp);
// get parent
hParentItem=LeftTree.GetParentItem(tvi.hItem);
}
// AfxMessageBox(treepath);
strcpy(pbuf,treepath);
return;
}