Das Fenster bekommt jetzt aber nur noch den Focus, wenn ich das Fenster über das
Popup-Menü wieder anzeigen lasse, obwohl bei der linken Maustaste die gleiche Prozedur
aufgerufen wird.

Könnt ihr mir vielleicht sagen, wo der Fehler liegt?
Code: Alles auswählen
;- Konstanten
#WM_SIZE = 5
#SIZE_MINIMIZED = 1
;- Enumerations
Enumeration
#Window_0
EndEnumeration
Enumeration
#Text_0
#Button_0
EndEnumeration
;- Prozeduren
Procedure.b Open_Window_0()
If OpenWindow(#Window_0, 532, 460, 191, 71, #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget, "Laufzeit")
If CreateGadgetList(WindowID())
TextGadget(#Text_0, 10, 10, 170, 20, "", #PB_Text_Center | #PB_Text_Border)
ButtonGadget(#Button_0, 30, 40, 130, 20, "Anzeige aktualisieren")
If CreatePopupMenu(0)
MenuItem(1, "Anzeigen")
MenuItem(2, "Beenden")
EndIf
EndIf
ProcedureReturn 1
EndIf
EndProcedure
Procedure ShowTrayIcon(a.b)
If a = 1
AddSysTrayIcon(0,WindowID(),UseImage(0))
HideWindow(0,1)
Else
RemoveSysTrayIcon(0)
HideWindow(0,0)
ActivateWindow()
EndIf
EndProcedure
Procedure.l WinCallback(WindowID,Message,wParam,lParam)
If Message = #WM_SIZE And wParam = #SIZE_MINIMIZED
ShowTrayIcon(1)
EndIf
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
Procedure.s Zeit()
lSec.l = ElapsedMilliseconds() / 1000
bHr.b = lSec / 3600: lSec % 3600
bMin.b = lSec / 60: lSec % 60
sHr.s = Str(bHr): sMin.s = Str(bMin): sSec.s = Str(lSec)
If Len(sHr) = 1: sHr = "0" + sHr: EndIf
If Len(sMin) = 1: sMin = "0" + sMin: EndIf
If Len(sSec) = 1: sSec = "0" + sSec: EndIf
sAusgabe = sHr + ":" + sMin + ":" + sSec
ProcedureReturn sAusgabe
EndProcedure
;- Haupt-Code
If Open_Window_0() = 0: End: EndIf
SetWindowCallback(@WinCallback())
LoadImage(0, "D:\CLOCK01.ICO")
Repeat
EventID.l = WaitWindowEvent()
Select EventID
Case #PB_EventGadget
If EventGadgetID() = #Button_0
If EventType() = #PB_EventType_LeftClick
SetGadgetText(#Text_0, Zeit())
EndIf
EndIf
Case #PB_Event_SysTray
Select EventType()
Case #PB_EventType_LeftClick: ShowTrayIcon(0)
Case #PB_EventType_RightClick: DisplayPopupMenu(0, WindowID())
EndSelect
Case #PB_Event_Menu
Select EventMenuID()
Case 1: ShowTrayIcon(0)
Case 2: EventID = #PB_EventCloseWindow
EndSelect
EndSelect
Until EventID = #PB_EventCloseWindow
FreeImage(0)
End