UDF > WinAPIEx > System > Windows >


_WinAPI_AnimateWindow

Vous permet de produire des effets spéciaux lors de l'affichage ou du masquage des fenêtres

#include <WinAPISysWin.au3>
_WinAPI_AnimateWindow ( $hWnd, $iFlags [, $iDuration = 1000] )

Paramètres

$hWnd Handle de la fenêtre à animer.
$iFlags Les flags qui précisent le type d'animation.
Ce paramètre peut prendre une ou plusieurs des valeurs suivantes. Notez que, par défaut, ces flags prennent effet lors de l'affichage de la fenêtre.
Pour prendre effet quand la fenêtre est cachée, utilisez AW_HIDE et un opérateur logique OR avec les flags appropriés :
    $AW_ACTIVATE - Active la fenêtre. Ne pas utiliser avec $AW_HIDE.
    $AW_BLEND - Effet de fondu. Peut être utilisé seulement avec une fenêtre top-level
    $AW_CENTER - effet d'effondrement vers l'intérieur si AW_HIDE est utilisé, ou développement vers l'extérieur si AW_HIDE n'est pas utilisé.
    $AW_HIDE - Cache la fenêtre
    $AW_HOR_NEGATIVE - Animation de droite à gauche
    $AW_HOR_POSITIVE - Animation de gauche à droite
    $AW_SLIDE - Animation rectiligne, par défaut circulaire
    $AW_VER_NEGATIVE - Animation de bas en haut
    $AW_VER_POSITIVE - Animation de haut en bas
$iDuration [optionnel] Indique la durée de l'animation, en millisecondes. Par défaut, 1000.

Valeur de retour

Succès: Retourne True.
Échec: Retourne False, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur.

Voir aussi

Consultez AnimateWindow dans la librairie MSDN.

Exemple

#NoTrayIcon

#include <APISysConstants.au3>
#include <GUIConstantsEx.au3>
#include <MenuConstants.au3>
#include <TrayConstants.au3>
#include <WinAPIGdi.au3>
#include <WinAPISysWin.au3>
#include <WindowsConstants.au3>

Opt('TrayMenuMode', 1)

Local $hTray = ControlGetHandle('[CLASS:Shell_TrayWnd]', '', 'TrayNotifyWnd1')

Local $idTrayRestoreItem = TrayCreateItem('Restore')
TrayItemSetState(-1, $TRAY_DEFAULT)
TrayCreateItem('')
Local $idTrayExitItem = TrayCreateItem('Exit')
TraySetClick(8)

Global $g_hForm = GUICreate('Test '& StringReplace(@ScriptName, '.au3', '()'))
Global $g_idDummy = GUICtrlCreateDummy()
GUIRegisterMsg($WM_SYSCOMMAND, 'WM_SYSCOMMAND')
GUISetState(@SW_SHOW)

Local $iMsgGui, $iMsgTray

Do
    $iMsgGui = GUIGetMsg()
    If $iMsgGui = $g_idDummy Then
        _WinAPI_DrawAnimatedRects($g_hForm, _WinAPI_GetWindowRect($g_hForm), _WinAPI_GetWindowRect($hTray))
        GUISetState(@SW_HIDE, $g_hForm)
        TraySetState(1)
    EndIf

    $iMsgTray = TrayGetMsg()
    If $iMsgTray = $idTrayRestoreItem Then
        _WinAPI_DrawAnimatedRects($g_hForm, _WinAPI_GetWindowRect($hTray), _WinAPI_GetWindowRect($g_hForm))
        GUISetState(@SW_SHOW, $g_hForm)
        TraySetState(2)
    EndIf
Until $iMsgGui = $GUI_EVENT_CLOSE Or $iMsgTray = $idTrayExitItem
   
If $iMsgGui = $GUI_EVENT_CLOSE Then
    _WinAPI_AnimateWindow($g_hForm, BitOR($AW_BLEND, $AW_HIDE))
Endif


Func WM_SYSCOMMAND($hWnd, $iMsg, $wParam, $lParam)
    #forceref $iMsg, $lParam

    If $hWnd = $g_hForm Then
        If $wParam = $SC_MINIMIZE Then
            GUICtrlSendToDummy($g_idDummy)
            Return 0
        EndIf
    EndIf
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_SYSCOMMAND