UDF > WinAPIEx > GDI > Paint & Draw >


_WinAPI_DrawAnimatedRects

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 )

Paramètres

$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.

Valeur de retour

Succès: Retourne True
Échec: Retourne False

Remarque

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.

Voir aussi

Consultez DrawAnimatedRects dans la librairie MSDN.

Exemple

#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