Поделиться через


Создание элемента управления "Представление дерева"

Чтобы создать элемент управления представлением дерева, используйте функцию CreateWindowEx , указав значение WC_TREEVIEW для класса окна. Класс окна представления дерева регистрируется в адресном пространстве приложения при загрузке библиотеки DLL общего элемента управления. Чтобы убедиться, что библиотека DLL загружена, используйте функцию InitCommonControls .

Это важно знать

Технологии

Необходимые компоненты

  • C/C++
  • Программирование пользовательского интерфейса Windows

Instructions

Создание экземпляра элемента управления "Представление дерева"

В следующем примере создается элемент управления представлением дерева, который соответствует клиентской области родительского окна. Он также использует определяемые приложением функции для связывания списка изображений с элементом управления и добавления элементов в элемент управления.

// Create a tree-view control. 
// Returns the handle to the new control if successful,
// or NULL otherwise. 
// hwndParent - handle to the control's parent window. 
// lpszFileName - name of the file to parse for tree-view items.
// g_hInst - the global instance handle.
// ID_TREEVIEW - the resource ID of the control.

HWND CreateATreeView(HWND hwndParent)
{ 
    RECT rcClient;  // dimensions of client area 
    HWND hwndTV;    // handle to tree-view control 

    // Ensure that the common control DLL is loaded. 
    InitCommonControls(); 

    // Get the dimensions of the parent window's client area, and create 
    // the tree-view control. 
    GetClientRect(hwndParent, &rcClient); 
    hwndTV = CreateWindowEx(0,
                            WC_TREEVIEW,
                            TEXT("Tree View"),
                            WS_VISIBLE | WS_CHILD | WS_BORDER | TVS_HASLINES, 
                            0, 
                            0, 
                            rcClient.right, 
                            rcClient.bottom,
                            hwndParent, 
                            (HMENU)ID_TREEVIEW, 
                            g_hInst, 
                            NULL); 

    // Initialize the image list, and add items to the control. 
    // InitTreeViewImageLists and InitTreeViewItems are application- 
    // defined functions, shown later. 
    if (!InitTreeViewImageLists(hwndTV) || 
                !InitTreeViewItems(hwndTV))
    { 
        DestroyWindow(hwndTV); 
        return FALSE; 
    } 
    return hwndTV;
} 

Замечания

При создании элемента управления "Представление дерева" его также можно отправить WM_SETFONT сообщение, чтобы задать шрифт, используемый для текста. Перед вставой элементов необходимо отправить это сообщение. По умолчанию в представлении дерева используется шрифт заголовка значка. Хотя вы можете настроить шрифт для каждого элемента с помощью пользовательского рисования, элемент управления "Представление дерева" использует измерения шрифта, указанного в сообщении WM_SETFONT для определения интервалов и макета.

Использование элементов управления "Дерево- представление"

Пример CustDTv иллюстрирует настраиваемое рисование в элементе управления "Представление дерева"