ddd
2010-04-30 17:45
134 查看
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, INDEXTOSTATEIMAGEMASK(0), TVIS_STATEIMAGEMASK);
}
else if (!XpFileOperation::IsDirAvailable(pShellItem->GetPath()))
{
SetItemState(hItem, INDEXTOSTATEIMAGEMASK(0), TVIS_STATEIMAGEMASK);
}
else
{
if (m_StFolderManager.IsInclude(XpPath(pShellItem->GetPath(), XpPath::Type_Dir)))
{
SetCheck(hItem, TRUE);
}
else
{
SetCheck(hItem, FALSE);
}
}
return hItem;
}
///////////////
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, INDEXTOSTATEIMAGEMASK(0), TVIS_STATEIMAGEMASK);
}
else if (!XpFileOperation::IsDirAvailable(pShellItem->GetPath()))
{
SetItemState(hItem, INDEXTOSTATEIMAGEMASK(0), TVIS_STATEIMAGEMASK);
}
else
{
if (m_StFolderManager.IsInclude(XpPath(pShellItem->GetPath(), XpPath::Type_Dir)))
{
SetCheck(hItem, TRUE);
}
else
{
SetCheck(hItem, FALSE);
}
}
return hItem;
}
///////////////
相关文章推荐
- 领域]在实践中展望。。。(写给DDD注释版)
- 实战DDD(Domain-Driven Design领域驱动设计:Evans DDD)
- DDD读书笔记-partI将领域模型应用到工作总述
- 领域]在实践中展望。。。(写给DDD注释版)
- DDD的最佳实践-ejb3
- 关于Component Business Model和DDD关系的探究结论
- 使用DDD开发ARM Linux程序
- ddd官方终于发布了一个完整的示例
- ddd
- DDD之模型
- ddd
- HDU 3076 ssworld VS DDD DP 概率水题
- (转)领域驱动设计(DDD)的实践经验分享之ORM的思考
- 搜集的关于领域驱动设计(DDD)的理论知识
- Microsoft NLayerApp案例理论与实践–DDD、分布式DDD及其分层
- olap4j:在线分析处理[from ddd]
- kernel debug with gdb/ddd
- DDD关键知识点整理汇总
- Short DDD-1
- CentOS 6下安装DDD