Dela via


Så här skapar du en Tree-View-kontroll

Om du vill skapa en trädvykontroll använder du funktionen CreateWindowEx och anger värdet WC_TREEVIEW för fönsterklassen. Trädvyns fönsterklass registreras i programmets adressutrymme när den gemensamma kontroll-DLL:en läses in. För att säkerställa att DLL:en läses in använder du funktionen InitCommonControls.

Vad du behöver veta

Teknologier

Förutsättningar

  • C/C++
  • Programmering av Windows-användargränssnitt

Instruktioner

Skapa en instans av en Tree-View-kontroll

I följande exempel skapas en trädvykontroll som är storleksanpassad för klientområdet i det överordnade fönstret. Den använder också programdefinierade funktioner för att associera en bildlista med kontrollen och lägga till objekt i kontrollen.

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

Anmärkningar

När du skapar en trädvykontroll kan du också skicka ett WM_SETFONT meddelande för att ange teckensnittet som ska användas för texten. Du bör skicka det här meddelandet innan du infogar några objekt. Som standard använder en trädvy teckensnittet för ikonens titel. Även om du kan anpassa teckensnittet för varje objekt med hjälp av Custom Drawanvänder trädvyn kontrollerar måtten för teckensnittet som anges av WM_SETFONT-meddelandet för att fastställa avstånd och layout.