WM_NCCALCSIZE

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

WM_NCCALCSIZE fCalcValidRects = (BOOL) wParam;        / / gültiger Bereich Flagge Lpncsp = (LPNCCALCSIZE_PARAMS) lParam;  / / Berechnungsdaten oder Lpncsp size = (LPRECT) lParam;               / / neues Fenster-Koordinaten 

 

Parameter

fCalcValidRects
Der Wert des wParam. Wenn wParam-Parameter TRUE ist, gibt es an, dass die Anwendung anzugeben, welcher Teil des Clientbereichs gültigen Informationen enthält. Das System kopiert die gültige Informationen zum angegebenen Bereich innerhalb der neuen Client-Bereich.

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

lpncsp
Wert des lParam. Wenn wParam-Parameter TRUE ist, zeigt lParam auf eine NCCALCSIZE_PARAMS -Struktur, die Informationen, die eine Anwendung verwenden kann enthält, um die neue Größe und Position des Clientrechtecks berechnen.

Wenn wParam-Parameter FALSE ist, lParam zeigt auf eine RECT -Struktur. Bei der Einreise enthält die Struktur der vorgeschlagenen Fensterrechtecks für das Fenster. Beim Beenden sollte die Struktur die Bildschirmkoordinaten des entsprechenden Fensterclientbereich enthalten.

Rückgabewerte

Wenn der fCalcValidRects -Parameter FALSE ist, sollte die Anwendung NULL zurückgeben.

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

Wert Bedeutung
WVR_ALIGNTOP, WVR_ALIGNLEFT, WVR_ALIGNBOTTOM, WVR_ALIGNRIGHT
Diese Werte, verwendet in Kombination, festlegen, dass der Clientbereich des Fensters zu erhalten und entsprechend ausgerichtet relativ zur neuen Position des Fensters. Z. B. zum Ausrichten auf die untere linke Ecke des Clientbereichs zurück die Werte WVR_ALIGNLEFT und WVR_ALIGNBOTTOM.
WVR_HREDRAW, WVR_VREDRAW
Diese Werte, verwendet in Kombination mit allen anderen Werten, dazu führen, dass das Fenster vollständig neu gezeichnet werden, wenn die Rechteck Clientänderungen horizontal oder vertikal Größe. Diese Werte sind ähnlich wie die Stile CS_HREDRAW und CS_VREDRAW-Klasse.
WVR_REDRAW
Dieser Wert bewirkt, dass das gesamte Fenster neu gezeichnet werden. Es ist eine Kombination der Werte WVR_HREDRAW und WVR_VREDRAW.
WVR_VALIDRECTS
Dieser Wert gibt an, dass nach der Rückkehr aus WM_NCCALCSIZE, die durch die Rgrc [1] angegebenen Rechtecke und Rgrc [2] Mitglieder der NCCALCSIZE_PARAMS -Struktur enthalten gültige Ziel und Quelle Bereich Rechtecke, bzw.. Das System kombiniert diese Rechtecke zur Berechnung der Fläche des Fensters beibehalten werden. Das System übernimmt einen Teil des Bildes, das innerhalb des Quellrechtecks ist und das Bild, um das Zielrechteck clips Fenster. Beide Rechtecke sind in übergeordneten-Verwandten oder Bildschirm-Relative Koordinaten.
Dieser Rückgabewert ermöglicht es einer Anwendung um aufwändigere-Clientbereich Erhaltung Strategien, wie zentrieren oder erhalten eine Teilmenge des Clientbereichs umzusetzen.

Wenn fCalcValidRects TRUE ist, und eine Anwendung gibt NULL zurück, alte Client-Bereich bleibt erhalten und wird mit der oberen linken Ecke des Clientbereichs neu ausgerichtet.

Standard-Aktion

Neu Fenster kann gezeichnet werden je nachdem, ob der Klassenstil CS_HREDRAW oder CS_VREDRAW angegeben ist. Dies ist die Standardeinstellung, abwärtskompatiblen Verarbeitung dieser Nachricht durch die DefWindowProc -Funktion (zusätzlich zu der üblichen Client-Rechteck-Berechnung in der obigen Tabelle beschriebenen).

QuickInfo

&Nbsp; Windows NT: Version 3.1 oder höher erforderlich.
Windows:Erfordert Windows 95 oder höher.
Windows CE:Nicht unterstützt.
Header:In winuser.h deklarierten.

Siehe auch

Übersicht über Windows, Windows-Meldungen, DefWindowProc, MoveWindow, SetWindowPos, NCCALCSIZE_PARAMS, RECT

Index