Раскрытие одной ветви полностью -- 1 методПроблему раскрытия одной ветви польностью можно решить следующим путем:
// ExpandBranch - Expands a branch completely
// hti - Handle of the tree item to expand
void CTreeCtrlX::ExpandBranch( HTREEITEM hti )
{
if( ItemHasChildren( hti ) ){
Expand( hti, TVE_EXPAND );
hti = GetChildItem( hti );
do{
ExpandBranch( hti );
}while( (hti = GetNextSiblingItem( hti )) != NULL );
}
EnsureVisible( GetSelectedItem() );
}
Принцип действия не сложен. Он заключается в рекурсивном вызове развертывающего метода. Беда только в том, что при достаточно большом дереве это может привести к нехватке памяти или ошибкам сопутствующим рекурсии.
|