Partager via


Comment 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 pour la classe window. 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 .

Bon à savoir

Technologies

Prérequis

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

Instructions

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

L’exemple suivant crée un contrôle arborescence qui est 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;
} 

Notes

Lorsque vous créez un contrôle arborescence, vous pouvez également lui 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 arborescence utilise les dimensions de la police spécifiées par le message WM_SETFONT pour déterminer l’espacement et la disposition.

Utilisation de contrôles Tree-View

L’exemple CustDTv illustre un dessin personnalisé dans un contrôle Tree-View