Раскрытие одной ветви полностью
-- 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() );
}
Принцип действия не сложен. Он заключается в
рекурсивном вызове развертывающего метода. Беда
только в том, что при достаточно большом дереве
это может привести к нехватке памяти или ошибкам
сопутствующим рекурсии.
Источник: ProtoSphere
|