Condividi tramite


Funzione AnimateWindow (winuser.h)

Consente di produrre effetti speciali quando si visualizzano o si nascondono finestre. Esistono quattro tipi di animazione: roll, diapositiva, compressione o espansione e dissolvenza combinata alfa.

Sintassi

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

Parametri

[in] hWnd

Tipo: HWND

Handle della finestra da animare. Il thread chiamante deve essere proprietario di questa finestra.

[in] dwTime

Tipo: DWORD

Tempo necessario per riprodurre l'animazione, in millisecondi. In genere, un'animazione richiede 200 millisecondi per la riproduzione.

[in] dwFlags

Tipo: DWORD

Tipo di animazione. Questo parametro può essere uno o più dei valori seguenti. Si noti che, per impostazione predefinita, questi flag diventano effettivi quando viene visualizzata una finestra. Per rendere effettivo quando si nasconde una finestra, usare AW_HIDE e un operatore OR logico con i flag appropriati.

Valore Significato
AW_ACTIVATE
0x00020000
Attiva la finestra. Non usare questo valore con AW_HIDE.
AW_BLEND
0x00080000
Usa un effetto dissolvenza. Questo flag può essere usato solo se hwnd è una finestra di primo livello.
AW_CENTER
0x00000010
Fa in modo che la finestra venga compressa verso l'interno se AW_HIDE viene utilizzata o si espande verso l'esterno se il AW_HIDE non viene utilizzato. I vari flag di direzione non hanno alcun effetto.
AW_HIDE
0x00010000
Nasconde la finestra. Per impostazione predefinita, viene visualizzata la finestra.
AW_HOR_POSITIVE
0x00000001
Anima la finestra da sinistra a destra. Questo flag può essere usato con l'animazione di scorrimento o diapositiva. Viene ignorato quando viene usato con AW_CENTER o AW_BLEND.
AW_HOR_NEGATIVE
0x00000002
Anima la finestra da destra a sinistra. Questo flag può essere usato con l'animazione di scorrimento o diapositiva. Viene ignorato quando viene usato con AW_CENTER o AW_BLEND.
AW_SLIDE
0x00040000
Usa l'animazione diapositiva. Per impostazione predefinita, viene usata l'animazione roll. Questo flag viene ignorato quando viene usato con AW_CENTER.
AW_VER_POSITIVE
0x00000004
Anima la finestra dall'alto verso il basso. Questo flag può essere usato con l'animazione di scorrimento o diapositiva. Viene ignorato quando viene usato con AW_CENTER o AW_BLEND.
AW_VER_NEGATIVE
0x00000008
Anima la finestra dal basso verso l'alto. Questo flag può essere usato con l'animazione di scorrimento o diapositiva. Viene ignorato quando viene usato con AW_CENTER o AW_BLEND.

Valore restituito

Tipo: BOOL

Se la funzione ha esito positivo, il valore restituito è diverso da zero.

Se la funzione ha esito negativo, il valore restituito è zero. La funzione avrà esito negativo nelle situazioni seguenti:

  • Se la finestra è già visibile e si sta tentando di visualizzare la finestra.
  • Se la finestra è già nascosta e si sta tentando di nascondere la finestra.
  • Se non è specificata alcuna direzione per l'animazione diapositiva o roll.
  • Quando si tenta di animare una finestra figlio con AW_BLEND.
  • Se il thread non è proprietario della finestra. Si noti che, in questo caso, AnimateWindow ha esito negativo, ma GetLastError restituisce ERROR_SUCCESS.
Per ottenere informazioni sull'errore estese, chiamare la funzione GetLastError .

Commenti

Per visualizzare o nascondere una finestra senza effetti speciali, usare ShowWindow.

Quando si usa l'animazione diapositiva o roll, è necessario specificare la direzione. Può essere AW_HOR_POSITIVE, AW_HOR_NEGATIVE, AW_VER_POSITIVE o AW_VER_NEGATIVE.

È possibile combinare AW_HOR_POSITIVE o AW_HOR_NEGATIVE con AW_VER_POSITIVE o AW_VER_NEGATIVE per animare una finestra in diagonale.

Le procedure della finestra per la finestra e le relative finestre figlio devono gestire qualsiasi WM_PRINT o WM_PRINTCLIENT messaggi. Le finestre di dialogo, i controlli e i controlli comuni gestiscono già WM_PRINTCLIENT. La routine della finestra predefinita gestisce già WM_PRINT.

Se viene visualizzata una finestra figlio parzialmente ritagliata, quando viene animata avrà fori in cui viene ritagliata.

AnimateWindow supporta le finestre RTL.

Evitare di animare una finestra con un'ombreggiatura perché produce animazioni visivamente distrazioni e cretino.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione winuser.h (include Windows.h)
Libreria User32.lib
DLL User32.dll
Set di API ext-ms-win-ntuser-window-l1-1-0 (introdotto in Windows 8)

Vedi anche

Informazioni concettuali

Altre risorse

Riferimento

Showwindow

WM_PRINT

WM_PRINTCLIENT

Windows