Оригинальный DVD-ROM: eXeL@B DVD !
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 8 мая!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

ПРОГРАММИРОВАНИЕ НА C и С++



Возможности языков семейства Си по истине безграничны, однако, в этой свободе кроются и недостатки: всегда нужно программисту держать ухо востро и контроллировать "переполнение буфера", чтобы потом программа не вылетала в "синий экран" на массе разнообразных версий Windows и железа у пользователей. Те же крэкеры и реверсеры специально ищут в коде программ на Си уязвимости, куда можно подсадить любой вирусный код, об этом более подробно автор рассказывал в своём видеокурсе здесь. Я там многое узнал и теперь мой код стал значительно более безопасный.

Раскрытие одной ветви полностью -- 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



<< ВЕРНУТЬСЯ В ПОДРАЗДЕЛ

<< ВЕРНУТЬСЯ В ОГЛАВЛЕНИЕ




Материалы находятся на сайте https://exelab.ru/pro/



Оригинальный DVD-ROM: eXeL@B DVD !


Вы находитесь на EXELAB.rU
Проект ReactOS