Die DeferWindowPos -Funktion aktualisiert angegebene Multiple-Fenster-Position-Struktur für das angegebene Fenster. Die Funktion gibt einen Handle auf die aktualisierte Struktur. Die EndDeferWindowPos -Funktion verwendet die Informationen in dieser Struktur, um die Position und Größe einer Reihe von Windows gleichzeitig zu ändern. Die BeginDeferWindowPos -Funktion erstellt die Struktur.
HDWP DeferWindowPos) HDWP hWinPosInfo, / / handle auf interne StrukturHWNDhWnd, / / handle zum Fenster zu positionierenHWNDhWndInsertAfter, / / handle Aushangint x, / / horizontale Position int y, / / vertikale Position int cx, // width int cy, // heightUINTuFlags / / Fenster-Positionierung Fahnen);
| Wert | Bedeutung |
|---|---|
| HWND_BOTTOM | Schaltet das Fenster am unteren Rand der Z-Reihenfolge. Wenn der hWnd -Parameter ein oberstes Fenster bezeichnet, das Fenster verliert seinen obersten Status und befindet sich am unteren Rand aller anderen Fenster. |
| HWND_NOTOPMOST | Schaltet das Fenster vor allem oberste Windows (d. h. hinter alle obersten Fenster). Dieses Flag hat keine Auswirkungen, wenn das Fenster bereits ein nicht-oberste Fenster ist. |
| HWND_TOP | Schaltet das Fenster am oberen Rand der Z-Reihenfolge. |
| HWND_TOPMOST | Schaltet das Fenster vor allem oberste Windows. Das Fenster behält seine oberste Position, auch wenn es deaktiviert ist. |
Dieser Parameter wird ignoriert, wenn das Flag SWP_NOZORDER im uFlags -Parameter festgelegt ist.
| Wert | Bedeutung |
|---|---|
| SWP_DRAWFRAME | Zeichnet einen Rahmen (in der Klassenbeschreibung des Fensters definiert) um das Fenster. |
| SWP_FRAMECHANGED | Sendet eine Nachricht WM_NCCALCSIZE zum Fenster, auch wenn die Fenstergröße nicht geändert wird. Wenn dieses Flag nicht angegeben ist, ist WM_NCCALCSIZE nur gesendet, wenn die Fenstergröße geändert wird. |
| SWP_HIDEWINDOW | Blendet das Fenster. |
| SWP_NOACTIVATE | Das Fenster wird nicht aktiviert werden. Wenn dieses Flag nicht festgelegt ist, wird das Fenster aktiviert und zog nach oben auf die oberste oder nicht-oberste Gruppe (je nach Einstellung des Parameters hWndInsertAfter ). |
| SWP_NOCOPYBITS | Löscht den gesamten Inhalt des Clientbereichs. Wenn dieses Flag nicht angegeben ist, sind die gültigen Inhalt des Clientbereichs gespeichert und zurück in den Clientbereich kopiert werden, nachdem das Fenster Größe oder neu positioniert ist. |
| SWP_NOMOVE | Behält die aktuelle Position (ignoriert die Parameter X und Y ). |
| SWP_NOOWNERZORDER | Das Besitzerfenster Position in der Z-Reihenfolge nicht geändert. |
| SWP_NOREDRAW | Änderungen wird nicht neu gezeichnet. Wenn dieses Flag festgelegt ist, tritt keine Malerarbeiten jeglicher Art. Dies gilt für den Clientbereich, der nicht-Clientbereich (einschließlich der Titelleiste und Bildlaufleisten), und ein Teil des übergeordneten Fensters aufgedeckt aufgrund eines Fensters verschoben wird. Wenn dieses Flag festgelegt ist, muss die Anwendung explizit ungültig erklärt oder neu zeichnen alle Teile des Fensters und übergeordnete Fenster, das Neuzeichnen benötigen. |
| SWP_NOREPOSITION | Dasselbe wie das SWP_NOOWNERZORDER-flag. |
| SWP_NOSENDCHANGING | Verhindert, dass das Fenster empfangen der Nachricht WM_WINDOWPOSCHANGING. |
| SWP_NOSIZE | Behält die aktuelle Größe (ignoriert die Cx und cy -Parameter). |
| SWP_NOZORDER | Behält die aktuelle Z-Reihenfolge (den hWndInsertAfter -Parameter ignoriert). |
| SWP_SHOWWINDOW | Zeigt das Fenster. |
Der Rückgabewert identifiziert das aktualisierte Multiple-Fenster-Position Structure. Das von dieser Funktion zurückgegebene Handle kann das Handle an die Funktion übergebene abweichen. Das neue Handle, das diese Funktion zurückgibt, sollte beim nächsten Aufruf der Funktion DeferWindowPos oder EndDeferWindowPos übergeben werden.
Wenn nicht genügend Systemressourcen verfügbar, für die Funktion erfolgreich sind, ist der Rückgabewert NULL. Rufen Sie Fehlerinformationen verlängert bekommen, GetLastError.
Wenn ein Aufruf DeferWindowPos fehlschlägt, sollte die Anwendung verlassen den Fenster-Positionierung Vorgang und nicht rufen EndDeferWindowPos.
Wenn SWP_NOZORDER nicht angegeben ist, wird das Fenster durch den hWnd -Parameter in der folgenden Fenster durch den hWndInsertAfter -Parameter angegebenen Position identifiziert. Wenn hWndInsertAfter NULL oder HWND_TOP ist, setzt das System das hWnd -Fenster am oberen Rand der Z-Reihenfolge. Wenn hWndInsertAfter auf HWND_BOTTOM festgelegt ist, setzt das System das hWnd -Fenster am unteren Rand der Z-Reihenfolge.
Alle Koordinaten für untergeordnete Fenster beziehen sich auf die obere linke Ecke des Clientbereichs des übergeordneten Fensters.
Ein Fenster kann ein oberstes Fenster erfolgen, entweder durch Festlegen von hWndInsertAfter auf HWND_TOPMOST Flagge und die Sicherung, die das SWP_NOZORDER-Flag nicht festgelegt ist, oder durch das Fenster Position in der Z-Reihenfolge festlegen, so dass es über alle vorhandenen oberste Fenster ist. Wenn ein nicht-oberstes Fenster oberste erfolgt, werden auch zugehörigen Besitzfenster oberste gemacht. Die Besitzer sind jedoch nicht geändert.
Wenn weder die SWP_NOACTIVATE noch SWP_NOZORDER-Flag angegeben ist (d. h., wenn die Anwendung anfordert, dass ein Fenster gleichzeitig aktiviert werden und seine Position in der Z-Reihenfolge geändert), wird im hWndInsertAfter angegebene Wert nur unter den folgenden Umständen verwendet.:
Eine Anwendung kann kein inaktives Fensters aktivieren, ohne dass es auch an der Spitze der Z-Reihenfolge. Eine Anwendung kann eine aktivierte Fenster Position in der Z-Reihenfolge ohne Einschränkungen ändern, oder es kann ein Fenster aktivieren und verschieben Sie es dann an die Spitze der obersten oder nicht-obersten Fenster.
Ein oberstes Fenster ist nicht mehr oberste, wenn es an der Unterseite (HWND_BOTTOM) der Z-Reihenfolge oder nach jedem nicht-obersten Fenster positioniert ist. Erfolgt ein oberstes Fenster nicht-obersten, seine Besitzer und zugehörigen Besitzfenster ebenfalls nicht oberste Windows erfolgen.
Ein nicht-oberstes Fenster kann selbst ein oberstes Fenster, aber nicht umgekehrt. Alle Fenster (z. B. ein Dialogfeld) im Besitz von einem obersten Fenster ist selbst ein oberstes Fenster, um sicherzustellen, dass alle gehört, dass Windows über ihre Besitzer bleiben.
&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.
Importieren Bibliothek:Verwenden Sie user32.lib.
Übersicht über Windows, Fensterfunktionen, BeginDeferWindowPos, EndDeferWindowPos, ShowWindow