Erstellen von Statusleisten

Sie können eine status leiste erstellen, indem Sie die CreateStatusWindow-Funktion oder die CreateWindowEx-Funktion verwenden und die StatusCLASSNAME-Fensterklasse angeben.

Nachdem Sie die status leiste erstellt haben, können Sie sie in Teile unterteilen, den Text für die einzelnen Teile festlegen und die Darstellung des Fensters mithilfe von status Balkenmeldungen steuern.

Hinweis

Um sicherzustellen, dass die allgemeine Steuerelement-DLL geladen wird, verwenden Sie zuerst die Funktion InitCommonControls .

 

Wichtige Informationen

Technologien

Voraussetzungen

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

Anweisungen

Erstellen einer Statusleiste

Im folgenden Beispiel wird veranschaulicht, wie Sie eine status Leiste erstellen, die über einen Größengriff verfügt und das Fenster basierend auf der Breite des Clientbereichs des übergeordneten Fensters in vier gleiche Teile unterteilt.

// Description: 
//   Creates a status bar and divides it into the specified number of parts.
// Parameters:
//   hwndParent - parent window for the status bar.
//   idStatus - child window identifier of the status bar.
//   hinst - handle to the application instance.
//   cParts - number of parts into which to divide the status bar.
// Returns:
//   The handle to the status bar.
//
HWND DoCreateStatusBar(HWND hwndParent, int idStatus, HINSTANCE
                      hinst, int cParts)
{
    HWND hwndStatus;
    RECT rcClient;
    HLOCAL hloc;
    PINT paParts;
    int i, nWidth;

    // Ensure that the common control DLL is loaded.
    InitCommonControls();

    // Create the status bar.
    hwndStatus = CreateWindowEx(
        0,                       // no extended styles
        STATUSCLASSNAME,         // name of status bar class
        (PCTSTR) NULL,           // no text when first created
        SBARS_SIZEGRIP |         // includes a sizing grip
        WS_CHILD | WS_VISIBLE,   // creates a visible child window
        0, 0, 0, 0,              // ignores size and position
        hwndParent,              // handle to parent window
        (HMENU) idStatus,       // child window identifier
        hinst,                   // handle to application instance
        NULL);                   // no window creation data

    // Get the coordinates of the parent window's client area.
    GetClientRect(hwndParent, &rcClient);

    // Allocate an array for holding the right edge coordinates.
    hloc = LocalAlloc(LHND, sizeof(int) * cParts);
    paParts = (PINT) LocalLock(hloc);

    // Calculate the right edge coordinate for each part, and
    // copy the coordinates to the array.
    nWidth = rcClient.right / cParts;
    int rightEdge = nWidth;
    for (i = 0; i < cParts; i++) { 
       paParts[i] = rightEdge;
       rightEdge += nWidth;
    }

    // Tell the status bar to create the window parts.
    SendMessage(hwndStatus, SB_SETPARTS, (WPARAM) cParts, (LPARAM)
               paParts);

    // Free the array, and return.
    LocalUnlock(hloc);
    LocalFree(hloc);
    return hwndStatus;
}  

Verwenden von Statusleisten

Demo allgemeiner Windows-Steuerelemente (CppWindowsCommonControls)