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] )
$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. |
Succès: | Retourne True. |
Échec: | Retourne False, appelez _WinAPI_GetLastError() pour obtenir des informations sur l'erreur. |
Consultez AnimateWindow dans la librairie MSDN.
#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