Freigeben über


Erstellen eines Headersteuerelements

In diesem Thema wird veranschaulicht, wie Sie ein Headersteuerelement erstellen und es im Clientbereich des übergeordneten Fensters positionieren. Sie können ein Headersteuerelement erstellen, indem Sie die CreateWindowEx-Funktion verwenden und die WC_HEADER Fensterklasse und die entsprechenden Headersteuerelementstile angeben. Diese Fensterklasse wird registriert, wenn die allgemeine Steuerelement-DLL geladen wird. Um sicherzustellen, dass diese DLL geladen wird, verwenden Sie die Funktion InitCommonControlsEx .

Wichtige Informationen

Technologien

Voraussetzungen

  • C/C++
  • Programmierung der Windows-Benutzeroberfläche

Anweisungen

Im folgenden C++-Codebeispiel wird zuerst die Funktion InitCommonControlsEx aufgerufen, um die allgemeine Steuerelement-DLL zu laden. Anschließend wird die CreateWindowEx-Funktion aufgerufen, um ein Headersteuerelement zu erstellen. Das Steuerelement ist zunächst ausgeblendet. Die HDM_LAYOUT Nachricht wird verwendet, um die Größe und Position des Steuerelements im übergeordneten Fenster zu berechnen. Das Steuerelement wird dann neu positioniert und sichtbar gemacht.

// DoCreateHeader - creates a header control that is positioned along 
//     the top of the parent window's client area. 
// Returns the handle to the header control. 
// hwndParent - handle to the parent window. 
// 
// Global variable 
//    g_hinst - handle to the application instance 
extern HINSTANCE g_hinst; 
//
// child-window identifier
int ID_HEADER;
//
HWND DoCreateHeader(HWND hwndParent) 
{ 
        HWND hwndHeader; 
        RECT rcParent; 
        HDLAYOUT hdl; 
        WINDOWPOS wp; 
 
        // Ensure that the common control DLL is loaded, and then create 
        // the header control. 
        INITCOMMONCONTROLSEX icex;  //declare an INITCOMMONCONTROLSEX Structure
        icex.dwSize = sizeof(INITCOMMONCONTROLSEX);
        icex.dwICC = ICC_LISTVIEW_CLASSES;   //set dwICC member to ICC_LISTVIEW_CLASSES    
                                             // this loads list-view and header control classes.
    InitCommonControlsEx(&icex); 
 
        if ((hwndHeader = CreateWindowEx(0, WC_HEADER, (LPCTSTR) NULL, 
                WS_CHILD | WS_BORDER | HDS_BUTTONS | HDS_HORZ, 
                0, 0, 0, 0, hwndParent, (HMENU) ID_HEADER, g_hinst, 
                (LPVOID) NULL)) == NULL) 
            return (HWND) NULL; 
 
        // Retrieve the bounding rectangle of the parent window's 
        // client area, and then request size and position values 
        // from the header control. 
        GetClientRect(hwndParent, &rcParent); 
 
        hdl.prc = &rcParent; 
        hdl.pwpos = ℘ 
        if (!SendMessage(hwndHeader, HDM_LAYOUT, 0, (LPARAM) &hdl)) 
            return (HWND) NULL; 
 
        // Set the size, position, and visibility of the header control. 
        SetWindowPos(hwndHeader, wp.hwndInsertAfter, wp.x, wp.y, 
            wp.cx, wp.cy, wp.flags | SWP_SHOWWINDOW); 
 
        return hwndHeader; 
}

Informationen zu Headersteuerelementen

Headersteuerelementreferenz

Verwenden von Headersteuerelementen