CTreeCtrl::GetNextSiblingItem
HTREEITEM GetNextSiblingItem(
?? HTREEITEM hItem
) const;
CTreeCtrl::GetItemData
DWORD_PTR GetItemData(
?? HTREEITEM hItem
) const;
CTreeCtrl::Expand
BOOL Expand(
?? HTREEITEM hItem,
?? UINT nCode
);
TVE_COLLAPSE?? Collapses the list.
TVE_COLLAPSERESET?? Collapses the list and removes the child items. The TVIS_EXPANDEDONCE state flag is reset. This flag must be used with the TVE_COLLAPSE flag.
TVE_EXPAND?? Expands the list.
TVE_TOGGLE?? Collapses the list if it is currently expanded or expands it if it is currently collapsed.
CTreeCtrl::GetSelectedItem
CWnd::SetRedraw
//////////
HTREEITEM ShellTree::insertItem( HTREEITEM hParent,ShellItem* pShellItem,HTREEITEM hInsertAfter,const IconIndex& icon )
{
?UINT itemState = 0;
?TVITEM item = { TVIF_TEXT | TVIF_IMAGE | TVIF_SELECTEDIMAGE | TVIF_PARAM | TVIF_STATE };
?if( pShellItem->GetAttributes() & SFGAO_HASSUBFOLDER )
?{
??item.cChildren = 1;
??item.mask |= TVIF_CHILDREN;
?}
?item.pszText = const_cast< LPTSTR >( pShellItem->GetName() );
?item.cchTextMax = MAX_PATH;
?item.lParam = reinterpret_cast< LPARAM >( pShellItem );
?item.iImage = icon.normal;
?item.iSelectedImage = icon.open;
?item.stateMask = TVIS_OVERLAYMASK;
?item.state = itemState;
?// 僣儕乕偵捛壛偡傞
?TVINSERTSTRUCT tvins;
?tvins.item???????? = item;
?tvins.hInsertAfter = hInsertAfter;
?tvins.hParent????? = hParent;
?
?HTREEITEM hItem = InsertItem( &tvins );
?if (hParent != NULL && hParent == m_hNetworkRoot)
?{
??SetItemState(hItem,INDEXTOSTATEIMAGEMASK(0),TVIS_STATEIMAGEMASK);
?}
??? else if (hParent != NULL && hParent == this->m_hLibrariesRoot)
??? {
??????? SetItemState(hItem,TVIS_STATEIMAGEMASK);
??? }
??? else if (!XpFileOperation::IsDirAvailable(pShellItem->GetPath()))
??? {
??????? SetItemState(hItem,TVIS_STATEIMAGEMASK);
??? }
?else
?{
??if (m_StFolderManager.IsInclude(XpPath(pShellItem->GetPath(),XpPath::Type_Dir)))
??{
???SetCheck(hItem,TRUE);
??}
??else
??{
???SetCheck(hItem,FALSE);
??}
?}
?
?return hItem; } ///////////////