函数参考


_WinAPI_AnimateWindow

启用窗口显示或隐藏时生成的特殊效果.

#Include <WinAPIEx.au3>
_WinAPI_AnimateWindow ( $hWnd, $iFlags [, $iDuration] )

参数

$hWnd 动画窗口句柄.
$iFlags 指定动画效果类型. 此参数可以是一或多个下列值:
注意, 默认时, 这些标志生效会显示窗口;
要使生效时隐藏窗口, 使用 AW_HIDE 与 逻辑 OR 运算结合适当的标志.

$AW_ACTIVATE --- 激活窗口.不要和 AW_HIDE 值同时使用.
$AW_BLEND --- 使用逐渐消失效果.这个标志只能使用于顶层窗口.
$AW_CENTER -- 如使用 AW_HIDE,窗口向内折叠;如不使用 AW_HIDE,窗口向外扩展.方向标志无效.
$AW_HIDE -- 隐藏窗口.默认情况下,窗口是显示的.
$AW_HOR_NEGATIVE -- 由右向左滚动或滑动窗口.如使用 AW_CENTER 或 AW_BLEND,此标志被忽略.
$AW_HOR_POSITIVE -- 由左向右滚动或滑动窗口.如使用 AW_CENTER 或 AW_BLEND,此标志被忽略.
$AW_SLIDE --- 使用幻灯片动画效果.默认情况下,使用动画滚动.当使用 AW_CENTER 时,此标志将被忽略.
$AW_VER_NEGATIVE -- 由下向上滚动或滑动窗口.如使用 AW_CENTER 或 AW_BLEND,此标志被忽略.
$AW_VER_POSITIVE -- 由上向下滚动或滑动窗口.如使用 AW_CENTER 或 AW_BLEND,此标志被忽略.
$iDuration [可选参数] 指定动画动作的时间毫秒值.默认为 1000.

返回值

成功: 返回 1.
失败: 返回 0,并设置@error标志为非 0 值.

注意/说明

None

相关

详情参考

在MSDN中搜索


示例/演示


#NoTrayIcon

#Include <APIConstants.au3>
#include <GUIConstantsEx.au3>
#Include <WinAPIEx.au3>

Opt('MustDeclareVars', 1)
Opt('TrayMenuMode', 1)

Global $hTray = ControlGetHandle('[CLASS:Shell_TrayWnd]', '', 'TrayNotifyWnd1')
Global $hForm, $Msg, $Dummy, $TrayRestoreItem, $TrayExitItem

$TrayRestoreItem = TrayCreateItem('Restore')
TrayItemSetState(-1, $TRAY_DEFAULT)
TrayCreateItem('')
$TrayExitItem = TrayCreateItem('Exit')
TraySetClick(8)

$hForm = GUICreate('My GUI')
$Dummy = GUICtrlCreateDummy()
GUIRegisterMsg($WM_SYSCOMMAND, 'WM_SYSCOMMAND')
GUISetState()

While 1
    $Msg = TrayGetMsg()
    Switch $Msg
        Case $TrayRestoreItem
            _WinAPI_DrawAnimatedRects($hForm, _WinAPI_GetWindowRect($hTray), _WinAPI_GetWindowRect($hForm))
            GUISetState(@SW_SHOW, $hForm)
            TraySetState(2)
        Case $TrayExitItem
            ExitLoop
    EndSwitch
    $Msg = GUIGetMsg()
    Switch $Msg
        Case $GUI_EVENT_CLOSE
            _WinAPI_AnimateWindow($hForm, BitOR($AW_BLEND, $AW_HIDE))
            ExitLoop
        Case $Dummy ; Minimize
            _WinAPI_DrawAnimatedRects($hForm, _WinAPI_GetWindowRect($hForm), _WinAPI_GetWindowRect($hTray))
            GUISetState(@SW_HIDE, $hForm)
            TraySetState(1)
    EndSwitch
WEnd

Func WM_SYSCOMMAND($hWnd, $iMsg, $wParam, $lParam)
    Switch $hWnd
        Case $hForm
            Switch $wParam
                Case $SC_MINIMIZE
                    GUICtrlSendToDummy($Dummy)
                    Return 0
            EndSwitch
    EndSwitch
    Return $GUI_RUNDEFMSG
EndFunc   ;==>WM_SYSCOMMAND