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
Wenn wParam-Parameter FALSE ist, muss die Anwendung nicht an den gültigen Teil des Clientbereichs.
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.
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.
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).
&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.
Übersicht über Windows, Windows-Meldungen, DefWindowProc, MoveWindow, SetWindowPos, NCCALCSIZE_PARAMS, RECT