Создание окна Tree View
Окно органа управления Tree View создается функцией CreateWindowEx на базе класса окна WC_TREEVIEW:
hwndTree = CreateWindowEx(0L, WC_TREEVIEW, "", WS_VISIBLE | WS_CHILD | WS_BORDER | TVS_HASLINES | TVS_HASBUTTONS | TVS_LINESATROOT, 0, 0, rc.right - rc.left, rc.bottom - rc.top, hWnd, (HMENU) IDC_TREEVIEW, hInst, NULL);
Перед вызовом этой функции (как и для других рассмотренных в этой книге органов управления) вы должны загрузить в память DLL-библиотеку COMCTL32.DLL . Это можно сделать при помощи функции InitCommonControls , вызвав ее без параметров.
Для окна органа управления Tree View вы можете использовать следующие дополнительные стили окна:
Стиль | Описание |
TVS_HASBUTTONS | Если указан стиль TVS_HASBUTTONS, создается кнопка небольших размеров, внутри которой может отображаться символ "+" или "-". Эта кнопка используется для того чтобы раскрыть или закрыть список вложенных элементов |
TVS_HASLINES | Для отображения иерархии элементов используются пунктирные линии |
TVS_LINESATROOT | Указанные выше линии используются и для присоединения корневого элемента дерева. Этот стиль должен использоваться совместно со стилем TVS_HASLINES |
TVS_EDITLABELS | Этот стиль позволяет пользователю редактировать название элемента списка |
TVS_SHOWSELALWAYS | Выбранные элементы списка отображаются с выделением даже в том случае, когда орган управления Tree View не активен |
TVS_DISABLEDROP | Если указан этот стиль, орган управления Tree View не посылает родительскому окну извещение TVN_BEGINDRAG |
Дополнительные стили окна могут комбинироваться между собой и со стандартными стилями окна при помощи логической операции ИЛИ.
С помощью пары функций GetWindowLong и SetWindowLong приложение может изменить стиль созданного ранее окна органа управления Tree View (можно использовать тот же способ, что и для органа управления List View).