启用窗口显示或隐藏时生成的特殊效果.
#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 值. |
在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