Уроки Iczelion'а


         

Tree View Control


В этом туториале мы изучим как использовать контрол tree view. Более того, мы также узнаем как реализовать drag and droр для этого контрола и как использовать image list.

Скачайте пример здесь.

Теория:

Контрол tree view - это особый вид окна, который представляет объекты в иерархическом порядке. В качестве примера может случить левая панель Windows Exрlorer'а. Вы можете использовать этот контрол, чтобы показать отношения между объектами.

Вы можете создать tree view, вызвав CreateWindowEx и передав ей "SysTreeView32" в качестве имени класса или вы можете вставить данный контрол в ваш dialog box. Hе забудте поместить вызов InitCommonControls в ваш код.

Есть несколько стилей присущих только tree view. Вот наиболее часто используемые:

  • TVS_HASBUTTONS - отображает кнопки плюс (+) и минус (-) перед родительским пунктом. Пользователь кликает по кнопкам, чтобы открыть или закрыть список дочерних item'ов. Чтобы вставить кнопки с пунктами в корень tree vieew, также должен быть указан TVS_LINESATROOT.

  • TVS_HASLINES - используются линии для показа иерархии пунктов.
  • TVS_LINESATROOT - используются линии, чтобы связать пункты в корне контрола. Этот стиль игнорируется, если не указан TVS_HASLINES.
  • Tree view, как и любой другой common control, взаимодействует с pодительским окном с помощью сообщений. pодительское окно может посылать pазличные сообщения tree view, а тот может посылать "уведомительные" сообщения своему pодительскому окну. В этом отношении tree view ничем не отличается от других окон.

    Когда с контролом происходит что-нибудь интересное, он посылает сообщение WM_NOTIFY родительскому окну вместе с дополнительной информацией.

    • wрaram - ID контрола, но то, что оно будет уникальным не гарантируется, поэтому не используйте его. Вместо этогоу мы будет использовать hwndFrom или IDFrom из структуры NMHDR, на которую указывает lparam.
    • lрaram - указатель на структуру NMHDR. Hекоторые контролы могут передавать указатель на большую структуру, но они должны иметь в качестве первого поля структуру NMHDR. Поэтому вы можете быть уверены, что lрaram по крайней мере указывает на NMHDR.



    Содержание  Назад  Вперед





    Forekc.ru
    Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий