Anime le titre d'une fenêtre pour indiquer l'ouverture d'une icône ou la minimisation ou la maximisation d'une fenêtre
#include <WinAPIGdi.au3>
_WinAPI_DrawAnimatedRects ( $hWnd, $tRectFrom, $tRectTo )
$hWnd | Handle de la fenêtre dont le titre doit être animé à l'écran. |
$tRectFrom | Structure $tagRECT indiquant l'emplacement et la taille de l'icône ou de la fenêtre réduite. |
$tRectTo | Structure $tagRECT indiquant l'emplacement et la taille de la fenêtre restaurée. |
Succès: | Retourne True |
Échec: | Retourne False |
Le titre de la fenêtre s'animera de la position spécifiée par $tRectFrom à la position spécifiée par $tRectTo.
L'effet est similaire la minimisation ou la maximisation de la fenêtre.
Consultez DrawAnimatedRects dans la librairie MSDN.
#NoTrayIcon #include <APIGdiConstants.au3> #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