Erstellen von Bildlaufleisten

Beim Erstellen eines überlappenden, Popup- oder untergeordneten Fensters können Sie Standard-Bildlaufleisten hinzufügen, indem Sie die CreateWindowEx-Funktion verwenden und WS_HSCROLL, WS_VSCROLL oder beide Formatvorlagen angeben.

Wichtige Informationen

Technologien

Voraussetzungen

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

Anweisungen

Erstellen einer Bildlaufleiste

Im folgenden Beispiel wird ein Fenster mit horizontalen und vertikalen Standardlaufleisten erstellt.

    hwnd = CreateWindowEx( 
        0,                     // no extended styles 
        g_szWindowClass,       // global string containing name of window class
        g_szTitle,             // global string containing title bar text 
        WS_OVERLAPPEDWINDOW |  
            WS_HSCROLL | WS_VSCROLL, // window styles 
        CW_USEDEFAULT,         // default horizontal position 
        CW_USEDEFAULT,         // default vertical position 
        CW_USEDEFAULT,         // default width 
        CW_USEDEFAULT,         // default height 
        (HWND) NULL,           // no parent for overlapped windows 
        (HMENU) NULL,          // use the window class menu 
        g_hInst,               // global instance handle  
        (PVOID) NULL           // pointer not needed 
    ); 

Zum Verarbeiten von Bildlaufleistenmeldungen für diese Bildlaufleisten müssen Sie den entsprechenden Code in die Standard-Fensterprozedur einschließen.

Sie können die CreateWindowEx-Funktion verwenden, um eine Bildlaufleiste zu erstellen, indem Sie die SCROLLBAR-Fensterklasse angeben. Dadurch wird eine horizontale oder vertikale Bildlaufleiste erstellt, je nachdem, ob SBS_HORZ oder SBS_VERT als Fensterformat angegeben ist. Die Größe der Bildlaufleiste und ihre Position relativ zum übergeordneten Fenster können ebenfalls angegeben werden.

Im folgenden Beispiel wird eine horizontale Bildlaufleiste erstellt, die sich am unteren Rand des Clientbereichs des übergeordneten Fensters befindet.

// Description:
//   Creates a horizontal scroll bar along the bottom of the parent 
//   window's area.
// Parameters:
//   hwndParent - handle to the parent window.
//   sbHeight - height, in pixels, of the scroll bar.
// Returns:
//   The handle to the scroll bar.
HWND CreateAHorizontalScrollBar(HWND hwndParent, int sbHeight)
{
    RECT rect;

    // Get the dimensions of the parent window's client area;
    if (!GetClientRect(hwndParent, &rect))
        return NULL;

    // Create the scroll bar.
    return (CreateWindowEx( 
            0,                      // no extended styles 
            L"SCROLLBAR",           // scroll bar control class 
            (PTSTR) NULL,           // no window text 
            WS_CHILD | WS_VISIBLE   // window styles  
                | SBS_HORZ,         // horizontal scroll bar style 
            rect.left,              // horizontal position 
            rect.bottom - sbHeight, // vertical position 
            rect.right,             // width of the scroll bar 
            sbHeight,               // height of the scroll bar
            hwndParent,             // handle to main window 
            (HMENU) NULL,           // no menu 
            g_hInst,                // instance owning this window 
            (PVOID) NULL            // pointer not needed 
        )); 
}

Verwenden von Bildlaufleisten

Demo allgemeiner Windows-Steuerelemente (CppWindowsCommonControls)