Hallo,
das Problem ist, das Windows die Taskleiste bei SetWindowLong_() nicht aktualisiert. Am einfachsten ist es wenn du das Fenster kurz versteckst und wieder erscheinen lässt, dann klappts:
Code: Alles auswählen
hwnd = OpenWindow(0, 0, 0, 200, 100, "WorkClock",#PB_Window_SystemMenu|#PB_Window_Invisible|#PB_Window_ScreenCentered)
CreateGadgetList(hwnd)
ButtonGadget(0, 5, 5, 80, 25, "Minimize")
OldFl = SetWindowLong_(hwnd, #GWL_EXSTYLE, #WS_EX_TOOLWINDOW)
ShowWindow_(hwnd,#SW_SHOWNORMAL)
Repeat
event = WaitWindowEvent()
If event = #PB_Event_Gadget
If EventGadget() = 0
SetWindowLong_(hwnd, #GWL_EXSTYLE, OldFl)
ShowWindow_(hwnd, #SW_HIDE)
ShowWindow_(hwnd, #SW_SHOW)
SetWindowState(0, #PB_Window_Minimize)
EndIf
EndIf
Until event = #PB_Event_CloseWindow
Aber wenn du darauf reagieren willst, wenn das Fenster wieder erscheint müsstest du dich am besten doch wieder mit Windowcallbacks beschäftigen. Es geht zwar evtl. mit #PB_Event_SizeWindow und den undokumentirten Befehlen EventwParam() und EventlParam() aber da diese Befehle nicht dokumentiert sind ist kein Verlass darauf, das diese Befehle in späteren PB - Versionen noch existieren.
Daß das Fenster bei Doppelklick auf die Titelleiste minimiert funktioniert nur über Windowcallback. Es bleibt dir also wohl nichts anderes übrig als dich mit Callbacks auseinanderzusetzen wenn du dein Projekt zuende bringen willst.
Gruß,
Ligatur