15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Раскрытие одной ветви полностью -- 3 метод (поправка к 1 методу)

Есть мнение что код: if( ItemHasChildren( hti ) ) приведет к проблемам если hti==NULL, потому что hti может быть равно NULL если дерево не имело дочерних элементов. Можно переписать код 1 метода следующим образом:

       
// ExpandBranch - Expands a branch completely
// hti          - Handle of the tree item to expand
void CTreeCtrlX::ExpandBranch( HTREEITEM hti )
{
     => if( ItemHasChildren( hti ) && hti != NULL){
                Expand( hti, TVE_EXPAND );
                hti = GetChildItem( hti );
                do{
                        ExpandBranch( hti );
                }while( (hti = GetNextSiblingItem( hti )) ! 
                                                   = NULL );
        }
        EnsureVisible( GetSelectedItem() );
}
 

 

Источник: ProtoSphere