Funktionreferenz


_WinAPI_DrawAnimatedRects

Beschreibung anzeigen in

Animiert den Rahmen eines Fensters um das Öffnen eines Icons, die Minimierung oder die Maximierung des Fensters anzudeuten

#include <WinAPIGdi.au3>
_WinAPI_DrawAnimatedRects ( $hWnd, $tRectFrom, $tRectTo )

Parameter

$hWnd Das Handle eines Fensters wessen Rahmen auf dem Bildschirm animiert werden soll.
$tRectFrom Die $tagRECT Struktur gibt die Position und Größe des Icons oder eines minimierten Fensters an.
$tRectTo Die $tagRECT Struktur gibt die Position und Größe des wiederhergestellten Fensters an.

Rückgabewert

Erfolg: True
Fehler: False

Bemerkungen

Der Fensterrahmen wird von der Position, welche von $tRectFrom angegeben wird, zu einer anderen Position, welche von $tRectTo angegeben wird, animiert.
Dieser Effekt ähnelt der Minimierung oder Maximierung eines Fensters.

Siehe auch

Suche nach DrawAnimatedRects in der MSDN Bibliothek.

Beispiel

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

#NoTrayIcon


Opt('TrayMenuMode', 1)

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

Local $idTrayRestoreItem = TrayCreateItem('Zurücksetzen')
TrayItemSetState(-1, $TRAY_DEFAULT)
TrayCreateItem('')
Local $idTrayExitItem = TrayCreateItem('Beenden')
TraySetClick(8)

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

While 1
    Switch TrayGetMsg()
        Case $idTrayRestoreItem
            _WinAPI_DrawAnimatedRects($g_hForm, _WinAPI_GetWindowRect($hTray), _WinAPI_GetWindowRect($g_hForm))
            GUISetState(@SW_SHOW, $g_hForm)
            TraySetState(2)
        Case $idTrayExitItem
            ExitLoop
    EndSwitch
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            _WinAPI_AnimateWindow($g_hForm, BitOR($AW_BLEND, $AW_HIDE))
            ExitLoop
        Case $g_idDummy ; Minimieren
            _WinAPI_DrawAnimatedRects($g_hForm, _WinAPI_GetWindowRect($g_hForm), _WinAPI_GetWindowRect($hTray))
            GUISetState(@SW_HIDE, $g_hForm)
            TraySetState(1)
    EndSwitch
WEnd

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

    Switch $hWnd
        Case $g_hForm
            Switch $wParam
                Case $SC_MINIMIZE
                    GUICtrlSendToDummy($g_idDummy)
                    Return 0
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_SYSCOMMAND