.h中
HTREEITEM get_next_item(HTREEITEM this_item); // 遍歷該節點後所有節點,包括未expand的
.cpp中
HTREEITEM CMyTreeCtrl::get_next_item( HTREEITEM this_item )
{
if(m_pTreeCtrl->GetChildItem(this_item))
{
return m_pTreeCtrl->GetChildItem(this_item);
}
if(m_pTreeCtrl->GetNextSiblingItem(this_item))
{
return m_pTreeCtrl->GetNextSiblingItem(this_item);
}
if (m_pTreeCtrl->GetParentItem(this_item))
{
if (m_pTreeCtrl->GetNextSiblingItem(m_pTreeCtrl->GetParentItem(this_item)))
{
return m_pTreeCtrl->GetNextSiblingItem(m_pTreeCtrl->GetParentItem(this_item));
}else
{
HTREEITEM nitem = m_pTreeCtrl->GetParentItem(this_item);
while (nitem && !(m_pTreeCtrl->GetNextSiblingItem(nitem)))
{
nitem = m_pTreeCtrl->GetParentItem(nitem);
}
return m_pTreeCtrl->GetNextSiblingItem(nitem);
}
}
return NULL;
}
首先從GetRootItem()開始就可以向下一個一個遍歷了。