ich möchte das "MainWindow" verstecken, die Anwendung nur als Systray anzeigen, sollte so ja Systemübergreifend funktionieren.
Die Anwendung soll sich NUR über den Exit im Systray schliessen (end).
Wie komme ich zum passendeden "Event" um darauf zu reagieren ?
Code: Alles auswählen
Enumeration
#Img_Exit16
#Img_Systray
#Systray_Exit
#test
EndEnumeration
;Images laden
UsePNGImageDecoder()
CatchImage(#Img_Systray, ?Img_Systray)
CatchImage(#Img_Exit16, ?Img_Exit16)
Procedure EventHandler()
Select Event()
Case #PB_Event_CloseWindow
;End
HideWindow(0,1)
Case #PB_Event_Gadget
Debug "Button"
Case #PB_Event_SysTray
Select EventType()
Case #PB_EventType_LeftClick, #PB_EventType_RightClick
Debug "!"
HideWindow(0,0)
DisplayPopupMenu(0, WindowID(0))
EndSelect
Case #PB_Event_Menu
Debug "ZZZ"
Select EventType()
Case #test : Debug "3"
Case #Systray_Exit : Debug "2"
EndSelect
EndSelect
EndProcedure
Procedure Systray(WindowID)
AddSysTrayIcon(1, WindowID(0), ImageID(#Img_Systray))
If CreatePopupImageMenu(0) ; hier beginnt das Erstellen des Popup-Menüs...
MenuItem(#Systray_Exit, "Exit",ImageID(#Img_Exit16))
EndIf
BindEvent(#PB_Event_SysTray, @EventHandler())
BindEvent(#PB_Event_Menu, @EventHandler())
EndProcedure
OpenWindow(0, 100, 100, 300, 100, "", #PB_Window_SizeGadget | #PB_Window_SystemMenu)
Systray(0)
ButtonGadget(0, 10, 10, 100, 30, "Test")
; Verwendung eines einzigen Callbacks für alle Ereignisse
BindGadgetEvent(0, @EventHandler())
BindEvent(#PB_Event_CloseWindow, @EventHandler())
Repeat
WaitWindowEvent()
ForEver
DataSection
Img_Systray: :IncludeBinary "Images/systray.png"
Img_Exit16: :IncludeBinary "Images/exit16.png"
EndDataSection