本帖最后由 sensel 于 2009-5-25 03:07 编辑
看不懂。最小化事件后还要判断控件ID?难道你的窗口上还有别的控件会产生最小化事件?
至于点击系统栏图标来显示/隐藏主窗口,获得$TRAY_EVENT_PRIMARYDOWN事件后判断一下窗口当前状态,如果显示则隐藏,否则反之。
下面的代码,那2条最小化和恢复,是为了做出窗口动画效果。
#include <ButtonConstants.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <Constants.au3>
Opt("GUIOnEventMode", 1)
Opt("TrayOnEventMode", 1)
Opt("TrayMenuMode", 1)
$Form1 = GUICreate("Form1", 180, 180, -1, -1)
GUISetOnEvent($GUI_EVENT_CLOSE, "Form1Close")
GUISetOnEvent($GUI_EVENT_MINIMIZE, "Form1Minimize")
TraySetOnEvent($TRAY_EVENT_PRIMARYDOWN, "Form1RESTORE")
GUISetState(@SW_SHOW)
While 1
Sleep(100)
WEnd
Func Form1Close()
Exit
EndFunc ;==>Form1Close
Func Form1Minimize()
GUISetState(@SW_HIDE, $Form1)
EndFunc ;==>Form1Minimize
Func Form1RESTORE()
If BitAND(WinGetState($Form1), 2) Then
GUISetState(@SW_MINIMIZE, $Form1)
GUISetState(@SW_HIDE, $Form1)
Else
GUISetState(@SW_RESTORE, $Form1)
GUISetState(@SW_SHOW, $Form1)
EndIf
EndFunc ;==>Form1RESTORE
|