AnimateWindow-Funktion (winuser.h)

Ermöglicht das Erzeugen von Spezialeffekten beim Ein- oder Ausblenden von Fenstern. Es gibt vier Arten von Animationen: Rollen, Folie, Reduzieren oder Erweitern und Alpha-blended Fade.

Syntax

BOOL AnimateWindow(
  [in] HWND  hWnd,
  [in] DWORD dwTime,
  [in] DWORD dwFlags
);

Parameter

[in] hWnd

Typ: HWND

Ein Handle für das zu animierende Fenster. Der aufrufende Thread muss dieses Fenster besitzen.

[in] dwTime

Art: DWORD

Die Zeit, die zum Wiedergeben der Animation in Millisekunden benötigt wird. In der Regel dauert die Wiedergabe einer Animation 200 Millisekunden.

[in] dwFlags

Art: DWORD

Der Typ der Animation. Dieser Parameter kann einen oder mehrere der folgenden Werte aufweisen. Beachten Sie, dass diese Flags standardmäßig wirksam werden, wenn ein Fenster angezeigt wird. Um beim Ausblenden eines Fensters wirksam zu werden, verwenden Sie AW_HIDE und einen logischen OR-Operator mit den entsprechenden Flags.

Wert Bedeutung
AW_ACTIVATE
0x00020000
Aktiviert das Fenster. Verwenden Sie diesen Wert nicht mit AW_HIDE.
AW_BLEND
0x00080000
Verwendet einen Einblendeffekt. Dieses Flag kann nur verwendet werden, wenn hwnd ein Fenster der obersten Ebene ist.
AW_CENTER
0x00000010
Bewirkt, dass das Fenster nach innen reduziert wird, wenn AW_HIDE verwendet wird, oder nach außen erweitert wird, wenn die AW_HIDE nicht verwendet wird. Die verschiedenen Richtungsflags haben keine Auswirkungen.
AW_HIDE
0x00010000
Blendet das Fenster aus. Standardmäßig wird das Fenster angezeigt.
AW_HOR_POSITIVE
0x00000001
Animiert das Fenster von links nach rechts. Dieses Flag kann mit Roll- oder Folienanimation verwendet werden. Sie wird ignoriert, wenn sie mit AW_CENTER oder AW_BLEND verwendet wird.
AW_HOR_NEGATIVE
0x00000002
Animiert das Fenster von rechts nach links. Dieses Flag kann mit Roll- oder Folienanimation verwendet werden. Sie wird ignoriert, wenn sie mit AW_CENTER oder AW_BLEND verwendet wird.
AW_SLIDE
0x00040000
Verwendet Folienanimation. Standardmäßig wird Rollanimation verwendet. Dieses Flag wird ignoriert, wenn es mit AW_CENTER verwendet wird.
AW_VER_POSITIVE
0x00000004
Animiert das Fenster von oben nach unten. Dieses Flag kann mit Roll- oder Folienanimation verwendet werden. Sie wird ignoriert, wenn sie mit AW_CENTER oder AW_BLEND verwendet wird.
AW_VER_NEGATIVE
0x00000008
Animiert das Fenster von unten nach oben. Dieses Flag kann mit Roll- oder Folienanimation verwendet werden. Sie wird ignoriert, wenn sie mit AW_CENTER oder AW_BLEND verwendet wird.

Rückgabewert

Typ: BOOL

Wenn die Funktion erfolgreich ist, ist der Rückgabewert ungleich Null.

Wenn die Funktion fehlerhaft ist, ist der Rückgabewert null. Die Funktion schlägt in den folgenden Situationen fehl:

  • Wenn das Fenster bereits sichtbar ist und Sie versuchen, das Fenster anzuzeigen.
  • Wenn das Fenster bereits ausgeblendet ist und Sie versuchen, das Fenster auszublenden.
  • Wenn für die Folien- oder Rollanimation keine Richtung angegeben ist.
  • Beim Versuch, ein untergeordnetes Fenster mit AW_BLEND zu animieren.
  • Wenn der Thread nicht im Besitz des Fensters ist. Beachten Sie, dass in diesem Fall AnimateWindow fehlschlägt, getLastError jedoch ERROR_SUCCESS zurückgibt.
Um erweiterte Fehlerinformationen zu erhalten, rufen Sie die GetLastError-Funktion auf.

Hinweise

Verwenden Sie ShowWindow, um ein Fenster ohne Sondereffekte ein- oder auszublenden.

Wenn Sie Folien- oder Rollanimation verwenden, müssen Sie die Richtung angeben. Es kann entweder AW_HOR_POSITIVE, AW_HOR_NEGATIVE, AW_VER_POSITIVE oder AW_VER_NEGATIVE sein.

Sie können AW_HOR_POSITIVE oder AW_HOR_NEGATIVE mit AW_VER_POSITIVE oder AW_VER_NEGATIVE kombinieren, um ein Fenster diagonal zu animieren.

Die Fensterprozeduren für das Fenster und die untergeordneten Fenster sollten alle WM_PRINT oder WM_PRINTCLIENT Nachrichten verarbeiten. Dialogfelder, Steuerelemente und gängige Steuerelemente behandeln bereits WM_PRINTCLIENT. Die Standardfensterprozedur verarbeitet bereits WM_PRINT.

Wenn ein untergeordnetes Fenster teilweise abgeschnitten angezeigt wird, weist es beim Animieren Löcher auf, an denen es abgeschnitten wird.

AnimateWindow unterstützt RTL-Fenster.

Vermeiden Sie das Animieren eines Fensters mit einem Schlagschatten, da es visuell ablenkende, ruckartige Animationen erzeugt.

Anforderungen

   
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winuser.h (einschließlich Windows.h)
Bibliothek User32.lib
DLL User32.dll
APIs ext-ms-win-ntuser-window-l1-1-0 (eingeführt in Windows 8)

Siehe auch

Konzept

Andere Ressourcen

Referenz

Showwindow

WM_PRINT

WM_PRINTCLIENT

Windows