Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Aktualisiert die angegebene Mehrfensterpositionsstruktur für das angegebene Fenster. Die Funktion gibt dann ein Handle an die aktualisierte Struktur zurück. Die Funktion EndDeferWindowPos verwendet die Informationen in dieser Struktur, um die Position und Größe einer Reihe von Fenstern gleichzeitig zu ändern. Die BeginDeferWindowPos-Funktion erstellt die Struktur.
Syntax
HDWP DeferWindowPos(
[in] HDWP hWinPosInfo,
[in] HWND hWnd,
[in, optional] HWND hWndInsertAfter,
[in] int x,
[in] int y,
[in] int cx,
[in] int cy,
[in] UINT uFlags
);
Die Parameter
[in] hWinPosInfo
Typ: HDWP
Ein Handle für ein Mehrfachfenster – Positionsstruktur, die Größen- und Positionsinformationen für ein oder mehrere Fenster enthält. Diese Struktur wird von BeginDeferWindowPos oder vom letzten Aufruf von DeferWindowPos zurückgegeben.
[in] hWnd
Typ: HWND-
Ein Handle für das Fenster, für das Aktualisierungsinformationen in der Struktur gespeichert werden. Alle Fenster in einem Mehrfenster – Positionsstruktur müssen dasselbe übergeordnete Element aufweisen.
[in, optional] hWndInsertAfter
Typ: HWND-
Ein Handle für das Fenster, das dem positionierten Fenster in der Z-Reihenfolge vorausgeht. Dieser Parameter muss ein Fensterhandle oder eins der folgenden Werte sein. Dieser Parameter wird ignoriert, wenn das flag SWP_NOZORDER im uFlags-Parameter festgelegt ist.
[in] x
Typ: int
Die x-Koordinate der oberen linken Ecke des Fensters.
[in] y
Typ: int
Die Y-Koordinate der oberen linken Ecke des Fensters.
[in] cx
Typ: int
Die neue Breite des Fensters in Pixel.
[in] cy
Typ: int
Die neue Höhe des Fensters in Pixel.
[in] uFlags
Typ: UINT
Eine Kombination der folgenden Werte, die sich auf die Größe und Position des Fensters auswirken.
| Wert | Bedeutung |
|---|---|
|
Zeichnet einen Rahmen (definiert in der Klassenbeschreibung des Fensters) um das Fenster. |
|
Sendet eine WM_NCCALCSIZE Nachricht an das Fenster, auch wenn die Größe des Fensters nicht geändert wird. Wenn dieses Kennzeichen nicht angegeben ist, wird WM_NCCALCSIZE nur gesendet, wenn die Fenstergröße geändert wird. |
|
Blendet das Fenster aus. |
|
Aktiviert das Fenster nicht. Wenn dieses Kennzeichen nicht festgelegt ist, wird das Fenster aktiviert und an den Anfang der obersten oder nicht obersten Gruppe verschoben (abhängig von der Einstellung des hWndInsertAfter-Parameters ). |
|
Verwirft den gesamten Inhalt des Clientbereichs. Wenn dieses Flag nicht angegeben ist, werden die gültigen Inhalte des Clientbereichs gespeichert und wieder in den Clientbereich kopiert, nachdem die Größe des Fensters angepasst oder neu positioniert wurde. |
|
Behält die aktuelle Position bei (ignoriert die x - und y-Parameter ). |
|
Ändert die Position des Besitzerfensters in der Z-Reihenfolge nicht. |
|
Änderungen werden nicht neu gezeichnet. Wenn dieses Kennzeichen festgelegt ist, tritt keine Aktualisierung jeglicher Art auf. Dies gilt für den Clientbereich, den nichtclientfreien Bereich (einschließlich der Titelleiste und Bildlaufleisten) und alle Teile des übergeordneten Fensters, der infolge des Verschiebens des Fensters aufgedeckt wird. Wenn dieses Kennzeichen festgelegt ist, muss die Anwendung alle Teile des Fensters und des übergeordneten Fensters, die neu gezeichnet werden müssen, explizit ungültig oder neu zeichnen. |
|
Identisch mit der SWP_NOOWNERZORDER-Kennzeichnung . |
|
Verhindert, dass das Fenster die WM_WINDOWPOSCHANGING Nachricht empfängt. |
|
Behält die aktuelle Größe bei (ignoriert die cx - und cy-Parameter ). |
|
Behält die aktuelle Z-Reihenfolge bei (ignoriert den Parameter hWndInsertAfter ). |
|
Zeigt das Fenster an. |
Rückgabewert
Typ: HDWP
Der Rückgabewert identifiziert die aktualisierte Mehrfensterpositionsstruktur. Der von dieser Funktion zurückgegebene Handle kann sich von dem handle unterscheiden, der an die Funktion übergeben wird. Das neue Handle, das diese Funktion zurückgibt, sollte während des nächsten Aufrufs der Funktion DeferWindowPos oder EndDeferWindowPos übergeben werden.
Wenn nicht genügend Systemressourcen verfügbar sind, damit die Funktion erfolgreich ausgeführt werden kann, ist der Rückgabewert NULL. Rufen Sie GetLastErrorauf, um erweiterte Fehlerinformationen zu erhalten.
Bemerkungen
Wenn ein Aufruf von DeferWindowPos fehlschlägt, sollte die Anwendung den Fensterpositionierungsvorgang abbrechen und nicht EndDeferWindowPos aufrufen.
Wenn SWP_NOZORDER nicht angegeben ist, platziert das System das durch den hWnd-Parameter identifizierte Fenster an der Position nach dem durch den hWndInsertAfter-Parameter identifizierten Fenster. Wenn hWndInsertAfterNULL oder HWND_TOP ist, platziert das System das hWnd-Fenster oben in der Z-Reihenfolge. Wenn hWndInsertAfter auf HWND_BOTTOM festgelegt ist, platziert das System das hWnd-Fenster am unteren Rand der Z-Reihenfolge.
Alle Koordinaten für untergeordnete Fenster sind relativ zur oberen linken Ecke des Clientbereichs des übergeordneten Fensters.
Ein Fenster kann entweder durch Festlegen von hWndInsertAfter auf das HWND_TOPMOST Flag und sicherstellen, dass das SWP_NOZORDER Flag nicht festgelegt ist, oder indem die Position des Fensters in der Z-Reihenfolge festgelegt wird, sodass es über allen vorhandenen obersten Fenstern liegt. Wenn ein nicht oberstes Fenster ganz oben erstellt wird, werden auch die eigenen Fenster ganz oben erstellt. Seine Besitzer werden jedoch nicht geändert.
Wenn weder das SWP_NOACTIVATE noch SWP_NOZORDER Flag angegeben wird (d. h., wenn die Anwendung anfordert, dass ein Fenster gleichzeitig aktiviert und seine Position in der Z-Reihenfolge geändert wird), wird der in hWndInsertAfter angegebene Wert nur unter folgenden Umständen verwendet:
- Weder das HWND_TOPMOST noch HWND_NOTOPMOST Flag wird in hWndInsertAfter angegeben.
- Das von hWnd identifizierte Fenster ist nicht das aktive Fenster.
Ein oberstes Fenster befindet sich nicht mehr ganz oben, wenn es nach unten (HWND_BOTTOM) der Z-Reihenfolge oder nach einem nicht obersten Fenster neu positioniert wird. Wenn ein oberstes Fenster nicht ganz oben erstellt wird, werden die Besitzer und die eigenen Fenster ebenfalls nicht oberste Fenster erstellt.
Ein nicht oberstes Fenster besitzt möglicherweise ein oberstes Fenster, aber nicht umgekehrt. Jedes Fenster (z. B. ein Dialogfeld) im Besitz eines obersten Fensters ist selbst ein oberstes Fenster, um sicherzustellen, dass alle eigenen Fenster über ihrem Besitzer bleiben.
Anforderungen
| Anforderung | Wert |
|---|---|
| Mindestens unterstützter Client | Windows 2000 Professional [nur Desktop-Apps] |
| Mindestanforderungen für unterstützte Server | Windows 2000 Server [nur Desktop-Apps] |
| Zielplattform | Fenster |
| Header | winuser.h (enthalten Windows.h) |
| Library | User32.lib |
| DLL | User32.dll |
| API-Satz | ext-ms-win-ntuser-window-l1-1-4 (eingeführt in Windows 10, Version 10.0.14393) |
Siehe auch
Konzeptionelle
Referenz