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
-
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.
Typ: LRESULT
Wenn eine Anwendung diese Meldung verarbeitet, sollte sie 0 (null) zurückgeben.
/******************************************************************
* *
* 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.
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.
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows 2000 Server [nur Desktop-Apps] |
Header |
|
-
Referenz
-
Konzept
-
Weitere Ressourcen