Partager via


Guide pratique pour créer un contrôle Tree-View

Pour créer un contrôle d’arborescence, utilisez la fonction CreateWindowEx , en spécifiant la valeur WC_TREEVIEW de la classe de fenêtre. La classe de fenêtre d’arborescence est inscrite dans l’espace d’adressage de l’application lorsque la DLL de contrôle commune est chargée. Pour vous assurer que la DLL est chargée, utilisez la fonction InitCommonControls .

Ce que vous devez savoir

Technologies

Conditions préalables

  • C/C++
  • Programmation de l’interface utilisateur Windows

Les instructions

Créer une instance d’un contrôle Tree-View

L’exemple suivant crée un contrôle d’arborescence dimensionné pour s’adapter à la zone cliente de la fenêtre parente. Il utilise également des fonctions définies par l’application pour associer une liste d’images au contrôle et ajouter des éléments au contrôle.

// 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;
} 

Remarques

Lorsque vous créez un contrôle d’arborescence, vous pouvez également l’envoyer à un message WM_SETFONT pour définir la police à utiliser pour le texte. Vous devez envoyer ce message avant d’insérer des éléments. Par défaut, une arborescence utilise la police de titre de l’icône. Bien que vous puissiez personnaliser la police par élément à l’aide du dessin personnalisé, le contrôle d’arborescence utilise les dimensions de la police spécifiée par le message WM_SETFONT pour déterminer l’espacement et la disposition.