先调用ItemHasChildren()
如果返回FALSE则执行操作,为TRUE则调用以下函数,可将树合上:
其中m_this为当前树的对像:void CGetClassView::OnExpend(HTREEITEM hTreeItem)
{
while(hTreeItem)
{
if(m_this.ItemHasChildren(hTreeItem))
{
m_this.Expand(hTreeItem, TVE_EXPAND);
hTreeItem = m_this.GetNextItem(hTreeItem, TVGN_CHILD);
OnExpend(hTreeItem);
}
else
{
hTreeItem = m_this.GetNextSiblingItem(hTreeItem);
}
}
}
如果返回FALSE则执行操作,为TRUE则调用以下函数,可将树合上:
其中m_this为当前树的对像:void CGetClassView::OnExpend(HTREEITEM hTreeItem)
{
while(hTreeItem)
{
if(m_this.ItemHasChildren(hTreeItem))
{
m_this.Expand(hTreeItem, TVE_EXPAND);
hTreeItem = m_this.GetNextItem(hTreeItem, TVGN_CHILD);
OnExpend(hTreeItem);
}
else
{
hTreeItem = m_this.GetNextSiblingItem(hTreeItem);
}
}
}
其中 m_this为CTreeCtrl的一个对象:
以下将树展开.
void CGetClassView::OnExpend(HTREEITEM hTreeItem)
{
while(hTreeItem)
{
if(m_this.ItemHasChildren(hTreeItem))
{
m_this.Expand(hTreeItem, TVE_EXPAND);
hTreeItem = m_this.GetNextItem(hTreeItem, TVGN_CHILD);
OnExpend(hTreeItem);
}
else
{
hTreeItem = m_this.GetNextSiblingItem(hTreeItem);
}
}
}
如果返回值不为空,则调用Expand()展开,否则响应事件