WM _ SIZE-Meldung

Wird an ein Fenster gesendet, nachdem seine Größe geändert wurde.

Ein Fenster empfängt diese Nachricht über seine WindowProc-Funktion.

#define WM_SIZE                         0x0005

Parameter

wParam

Der Typ der angeforderten Größenver ändern. Dieser Parameter kann einen der folgenden Werte annehmen.

Wert Bedeutung
SIZE _ MAXHIDE
4
Die Meldung wird an alle Popupfenster gesendet, wenn ein anderes Fenster maximiert ist.
SIZE _ MAXIMIERT
2
Das Fenster wurde maximiert.
SIZE _ MAXSHOW
3
Die Meldung wird an alle Popupfenster gesendet, wenn ein anderes Fenster auf seine frühere Größe wiederhergestellt wurde.
SIZE _ MINIMIERT 1
Das Fenster wurde minimiert.
SIZE _ RESTORED
0
Die Größe des Fensters wurde geändert, aber weder der Wert SIZE _ MINIMIZED noch SIZE _ MAXIMIZED gilt.

lParam

Das niedrige Wort lParam gibt die neue Breite des Clientbereichs an.

Das obere Wort lParam gibt die neue Höhe des Clientbereichs an.

Rückgabewert

Typ: LRESULT

Wenn eine Anwendung diese Nachricht verarbeitet, sollte sie 0 (null) zurückgeben.

Beispiel

/******************************************************************
*                                                                 *
*  SimpleText::OnResize                                           *
*                                                                 *
*  If the application receives a WM_SIZE message, this method     *
*  resize the render target appropriately.                        *
*                                                                 *
******************************************************************/

void SimpleText::OnResize(UINT width, UINT height)
{
    if (pRT_)
    {
        D2D1_SIZE_U size;
        size.width = width;
        size.height = height;
        pRT_->Resize(size);
    }
}

LRESULT CALLBACK SimpleText::WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{
   
    SimpleText *pSimpleText = reinterpret_cast<SimpleText *>(
                ::GetWindowLongPtr(hwnd, GWLP_USERDATA));

    if (pSimpleText)
    {
        switch(message)
        {
        case WM_SIZE:
            {
                UINT width = LOWORD(lParam);
                UINT height = HIWORD(lParam);
                pSimpleText->OnResize(width, height);
            }
            return 0;

// ...

Beispiel aus Windows klassischen Beispielen auf GitHub.

Hinweise

Wenn die Funktion SetScrollPos oder MoveWindow als Ergebnis der WM _ SIZE-Meldung für ein untergeordnetes Fenster aufgerufen wird, sollte der Parameter bRedraw oder bRepaint ungleich 0 (null) sein, damit das Fenster neu gepaint wird.

Obwohl die Breite und Höhe eines Fensters 32-Bit-Werte sind, enthält der lParam-Parameter nur die niedrigen 16 Bits von jedem.

Die DefWindowProc-Funktion sendet die NACHRICHTEN WM _ SIZE und WM _ MOVE, wenn sie die WM _ WINDOWPOSCHANGED-Nachricht verarbeitet. Die NACHRICHTEN WM _ SIZE und WM _ MOVE werden nicht gesendet, wenn eine Anwendung die WM _ WINDOWPOSCHANGED-Nachricht ohne Aufruf von DefWindowProc verarbeitet.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows 2000 Server [nur Desktop-Apps]
Header
Winuser.h (include Windows.h)

Siehe auch

Referenz

HIWORD

LOWORD

MoveWindow

_WM-FENSTERPOSCHANGED

Konzeptionellen

Windows

Andere Ressourcen

SetScrollPos