WM_SIZE-Meldung

Wird an ein Fenster gesendet, nachdem sich die Größe geändert hat.

Ein Fenster empfängt diese Meldung über die WindowProc-Funktion.

#define WM_SIZE                         0x0005

Parameter

wParam

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

Wert Bedeutung
SIZE_MAXHIDE
4
Die Nachricht wird an alle Popupfenster gesendet, wenn ein anderes Fenster maximiert wird.
SIZE_MAXIMIZED
2
Das Fenster wurde maximiert.
SIZE_MAXSHOW
3
Die Nachricht wird an alle Popupfenster gesendet, wenn ein anderes Fenster in seiner früheren Größe wiederhergestellt wurde.
SIZE_MINIMIZED
1
Das Fenster wurde minimiert.
SIZE_RESTORED
0
Die Größe des Fensters wurde geändert, aber weder der Wert SIZE_MINIMIZED noch der Wert SIZE_MAXIMIZED gilt.

 

lParam

Das Wort lParam in niedriger Reihenfolge gibt die neue Breite des Clientbereichs an.

Das Wort lParam in hoher Reihenfolge gibt die neue Höhe des Clientbereichs an.

Rückgabewert

Typ: LRESULT

Wenn eine Anwendung diese Meldung 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 Klassische Windows-Beispiele auf GitHub.

Hinweise

Wenn die SetScrollPos- oder MoveWindow-Funktion als Ergebnis der WM_SIZE-Meldung aufgerufen wird, sollte der Parameter bRedraw oder bRepaint ungleich null sein, damit das Fenster aktualisiert wird.

Obwohl die Breite und Höhe eines Fensters 32-Bit-Werte sind, enthält der lParam-Parameter nur die 16 Bit mit niedriger Reihenfolge.

Die DefWindowProc-Funktion sendet die Meldungen WM_SIZE und WM_MOVE, wenn sie die Meldung WM_WINDOWPOSCHANGED verarbeitet. Die Meldungen WM_SIZE und WM_MOVE werden nicht gesendet, wenn eine Anwendung die Meldung WM_WINDOWPOSCHANGED behandelt, ohne DefWindowProc aufzurufen.

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 (einschließlich Windows.h)

Siehe auch

Referenz

HIWORD

LOWORD

MoveWindow

WM_WINDOWPOSCHANGED

Konzept

Windows

Weitere Ressourcen

SetScrollPos