Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] GUI и трей (http://forum.oszone.net/showthread.php?t=139780)

speechless 10-05-2009 17:41 1114991

[решено] GUI и трей
 
Как можно создать GUI, чтобы у него в трее по правому щелчку вылезала менюшка. А по левому востанавливалось ранее свернутое GUI.
Поблема в том, что при включении/выключении TrayOnEventMode работает что то одно (применение TrayItemSetOnEvent обязательно)

Creat0R 10-05-2009 18:15 1115003

Код:

#include <GUIConstantsEx.au3>
#include <Constants.au3>

Opt("TrayMenuMode", 1)
Opt("TrayOnEventMode", 1)

TraySetOnEvent($TRAY_EVENT_PRIMARYUP, "_Tray_Main_Events")
TraySetClick(16)

$ShowMainWindow_TrayItem = TrayCreateItem("Show Main window")
TrayItemSetState(-1, $TRAY_DEFAULT)
TrayItemSetOnEvent(-1, "_Tray_Main_Events")

TrayCreateItem("")

$About_TrayItem = TrayCreateItem("About")
TrayItemSetOnEvent(-1, "_Tray_Main_Events")

$Exit_TrayItem = TrayCreateItem("Exit")
TrayItemSetOnEvent(-1, "_Tray_Main_Events")

$hGUI = GUICreate("My GUI", 300, 200)
GUISetState(@SW_SHOW, $hGUI)

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case
$GUI_EVENT_MINIMIZE
            GUISetState(@SW_HIDE, $hGUI)
    EndSwitch
WEnd

Func
_Tray_Main_Events()
    Switch @TRAY_ID
        Case $TRAY_EVENT_PRIMARYUP, $ShowMainWindow_TrayItem
            GUISetState(@SW_SHOW, $hGUI)
            WinSetState($hGUI, "", @SW_RESTORE)
            WinActivate($hGUI)
        Case $About_TrayItem
            TraySetState(2)
            MsgBox(262144+64, "About", "My App v1.0", 0, $hGUI)
            TraySetState(1)
        Case $Exit_TrayItem
            Exit
    EndSwitch
EndFunc


speechless 10-05-2009 18:38 1115014

Спасибо за оперативность. Кстати ваш код натолкнул на новые решения в моём (оказывается можно сделать проще), так что двойное спасибо. :up


Время: 01:07.

Время: 01:07.
© OSzone.net 2001-