WM _ NCCALCSIZE-Meldung

Wird gesendet, wenn größe und position des Clientbereichs eines Fensters berechnet werden müssen. Durch die Verarbeitung dieser Nachricht kann eine Anwendung den Inhalt des Clientbereichs des Fensters steuern, wenn sich die Größe oder Position des Fensters ändert.

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

#define WM_NCCALCSIZE                   0x0083

Parameter

wParam

Wenn wParam TRUE ist, wird angegeben, dass die Anwendung angeben soll, welcher Teil des Clientbereichs gültige Informationen enthält. Das System kopiert die gültigen Informationen in den angegebenen Bereich innerhalb des neuen Clientbereichs.

Wenn wParam FALSE ist, muss die Anwendung nicht den gültigen Teil des Clientbereichs angeben.

lParam

Wenn wParam TRUE ist, verweist lParam auf eine NCCALCSIZE-PARAMS-Struktur, _ die Informationen enthält, die eine Anwendung verwenden kann, um die neue Größe und Position des Clientrechtecks zu berechnen.

Wenn wParam FALSE ist, zeigt lParam auf eine RECT-Struktur. Beim Eintrag enthält die -Struktur das vorgeschlagene Fensterrechteck für das Fenster. Beim Beenden sollte die -Struktur die Bildschirmkoordinaten des entsprechenden Fensterclientbereichs enthalten.

Rückgabewert

Typ: LRESULT

Wenn der wParam-Parameter FALSE ist, sollte die Anwendung 0 (null) zurückgeben.

Wenn wParam TRUE ist, sollte die Anwendung 0 (null) oder eine Kombination der folgenden Werte zurückgeben.

Wenn wParam TRUE ist und eine Anwendung 0 (null) zurückgibt, wird der alte Clientbereich beibehalten und an der oberen linken Ecke des neuen Clientbereichs ausgerichtet.

Rückgabecode/-wert Beschreibung
WVR _ ALIGNTOP-0x0010
Gibt an, dass der Clientbereich des Fensters beibehalten und am oberen Ende der neuen Position des Fensters ausgerichtet werden soll. Um beispielsweise den Clientbereich an der oberen linken Ecke auszurichten, geben Sie die _ WVR-Werte ALIGNTOP und WVR _ ALIGNLEFT zurück.
WVR _ ALIGNRIGHT
0x0080
Gibt an, dass der Clientbereich des Fensters beibehalten und an der rechten Seite der neuen Position des Fensters ausgerichtet werden soll. Um beispielsweise den Clientbereich an der unteren rechten Ecke auszurichten, geben Sie die _ WVR-Werte ALIGNRIGHT und WVR _ ALIGNBOTTOM zurück.
WVR _ ALIGNLEFT-0x0020
Gibt an, dass der Clientbereich des Fensters beibehalten und an der linken Seite der neuen Position des Fensters ausgerichtet werden soll. Um beispielsweise den Clientbereich an der unteren linken Ecke auszurichten, geben Sie die _ WVR-Werte ALIGNLEFT und WVR _ ALIGNBOTTOM zurück.
WVR _ ALIGNBOTTOM
0x0040
Gibt an, dass der Clientbereich des Fensters beibehalten und am unteren Rand der neuen Position des Fensters ausgerichtet werden soll. Um beispielsweise den Clientbereich an der oberen linken Ecke auszurichten, geben Sie die _ WVR-Werte ALIGNTOP und WVR _ ALIGNLEFT zurück.
WVR _ HREDRAW-0x0100
Wird in Kombination mit anderen Werten außer WVR _ VALIDRECTS verwendet, wird das Fenster vollständig neu gezeichnet, wenn sich die Größe des Clientrechtecks horizontal ändert. Dieser Wert ähnelt dem CS _ HREDRAW-Klassenstil.
WVR _ VREDRAW
0x0200
Wird in Kombination mit anderen Werten außer WVR _ VALIDRECTS verwendet, wird das Fenster vollständig neu gezeichnet, wenn sich die Größe des Clientrechtecks vertikal ändert. Dieser Wert ähnelt dem CS _ VREDRAW-Klassenstil.
WVR _ REDRAW-0x0300
Dieser Wert bewirkt, dass das gesamte Fenster neu gezeichnet wird. Es handelt sich um eine Kombination aus WVR _ HREDRAW- und WVR _ VREDRAW-Werten.
WVR _ VALIDRECTS
0x0400
Dieser Wert gibt an, dass bei rückgabe von WM _ NCCALCSIZEdie rechtecke, die von den rgrc [ 1- und ] rgrc 2-Membern der [ ] NCCALCSIZE _ PARAMS-Struktur angegeben werden, gültige Ziel- bzw. Quellbereichrechtecke enthalten. Das System kombiniert diese Rechtecke, um den Bereich des zu erhaltenden Fensters zu berechnen. Das System kopiert alle Teile des Fensterbilds, die sich innerhalb des Quellrechtecks befinden, und schneidest das Bild in das Zielrechteck. Beide Rechtecke befinden sich in übergeordneten oder bildschirm relativen Koordinaten. Dieses Flag kann nicht mit anderen Flags kombiniert werden.
Mit diesem Rückgabewert kann eine Anwendung aufwendigere Strategien zur Beibehaltung des Clientbereichs implementieren, z. B. das Zentrieren oder Beibehalten einer Teilmenge des Clientbereichs.

Hinweise

Das Fenster kann neu gezeichnet werden, je nachdem, ob der CS _ HREDRAW- oder CS _ VREDRAW-Klassenstil angegeben ist. Dies ist die abwärtskompatible Standardverarbeitung dieser Nachricht durch die DefWindowProc-Funktion (zusätzlich zur üblichen Clientrechteckberechnung, die in der obigen Tabelle beschrieben wird).

Wenn wParam TRUE ist, wird die Größe des Clientbereichs auf die Größe des Fensters einschließlich des Fensterrahmens geändert, wenn einfach 0 (0) ohne Verarbeitung der NCCALCSIZE-PARAMS-Rechtecke _ zurückgibt. Dadurch werden der Fensterrahmen und die Beschriftungselemente aus dem Fenster entfernt, und nur der Clientbereich wird angezeigt.

Ab Windows Vista wirkt sich das Entfernen des Standardframes durch einfache Rückgabe von 0 (0), wenn wParam TRUE ist, nicht auf Frames aus, die mithilfe der DwmExtendFrameIntoClientArea-Funktion in den Clientbereich erweitert werden. Nur der Standardframe wird entfernt.

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

Verweis

DefWindowProc

MoveWindow

SetWindowPos

NCCALCSIZE-PARAMETER _

Konzept

Windows

Andere Ressourcen

RECT