DeferWindowPos

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);
 

Parameter

hWinPosInfo
Handle für ein Multiple-Fenster-Position-Struktur, die Größe und Position Informationen für ein oder mehrere Fenster enthält. Diese Struktur wird durch BeginDeferWindowPos oder durch den letzten Aufruf von DeferWindowPos zurückgegeben.
hWnd
Handle für das Fenster für die, das Update-Informationen in der Struktur gespeichert werden.
hWndInsertAfter
Handle für das Fenster, das Fenster in der Z-Reihenfolge positionierte wird. Dieser Parameter muss ein Fensterhandle oder einer der folgenden Werte sein.:
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.

x
Gibt die X-Koordinate der oberen linken Ecke des Fensters.
y
Gibt die y-Koordinate der oberen linken Ecke des Fensters.
cx
Gibt die neue Breite des Fensters, in Pixel.
cy
Gibt die neue Höhe des Fensters, in Pixel.
uFlags
Gibt eine Kombination der folgenden Werte, die die Größe und Position des Fensters beeinflussen:
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.

Rückgabewerte

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.

Bemerkungen

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.

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.
Importieren Bibliothek:Verwenden Sie user32.lib.

Siehe auch

Übersicht über Windows, Fensterfunktionen, BeginDeferWindowPos, EndDeferWindowPos, ShowWindow

Index