Seite 1 von 1
Taskleiste
Verfasst: 02.08.2006 23:59
von C4rizz
Guten Abend.
Wollte mal fragen, wie ich ein Programm in die Taskleiste einspeise?
Es soll nach dem minimieren nur noch in der unteren rechten Ecke erscheinen.
Re: Taskleiste
Verfasst: 03.08.2006 00:08
von Kiffi
C4rizz hat geschrieben:Es soll nach dem minimieren nur noch in der unteren rechten Ecke erscheinen.
der Bereich in der rechten unteren Ecke[1] nennt sich Systray und PureBasic
bietet Dir 5 Befehle an, um Dein Programm (oder vielmehr das Icon dessen)
dort zu plazieren.
Schau Dir in der PB-Hilfe mal das Kapitel 'SysTray' an. Dort gibt es auch
einen schönen Beispielcode.
Grüße ... Kiffi
[1] Sofern die Taskleiste am unteren Bildschirmrand plaziert ist.

Verfasst: 03.08.2006 00:09
von ts-soft
Die zugehörige Lib heißt SysTray. Beispiel in der Hilfe testen und dann
weitere Fragen stellen!
Verfasst: 03.08.2006 00:15
von C4rizz
OK danke schon mal.
Werd ich mir mal durchlesen.

Verfasst: 03.08.2006 11:37
von a14xerus
wenn du ein Systray hinzufügst, bleibt das fenster trotzdem noch erhalten.
aus der Taskleiste kannst du es verschwinden lasen indem du
Code: Alles auswählen
GetWindowState(#Window_0) = #PB_Window_Minimize
;und
HideWindow(#Window_0,1)
verwendest.
bei einem doppelklick auf das systray kann man das fenster dann wieder zeigen
Verfasst: 03.08.2006 18:45
von C4rizz
Danke!
Genau das wollte ich wissen.
Hab mir die Hilfe dazu mal durchgelesen und habe daraus aber nicht erkennen können wie das geht.
Verfasst: 03.08.2006 18:53
von ts-soft
So in etwa könnte es in Deiner Ereignisschleife aussehen:
Code: Alles auswählen
Case #PB_Event_MoveWindow
If GetWindowState(#Form_Main) = #PB_Window_Minimize
If AddSysTrayIcon(#SysTrayIcon_Main, WindowID(#Form_Main), LoadIcon_(GetModuleHandle_(0), "APP"))
HideWindow(#Form_Main, #True)
EndIf
Else
WinState = GetWindowState(#Form_Main)
If IsSysTrayIcon(#SysTrayIcon_Main)
RemoveSysTrayIcon(#SysTrayIcon_Main)
EndIf
EndIf
Case #PB_Event_SysTray
If Gadget = #SysTrayIcon_Main
If EventType() = #PB_EventType_LeftClick
RemoveSysTrayIcon(#SysTrayIcon_Main)
SetWindowState(#Form_Main, WinState)
HideWindow(#Form_Main, #False)
SetForegroundWindow_(WindowID(#Form_Main))
EndIf
EndIf
WinState dient dazu, auch Normal und Maximiert-Ansicht korrekt wieder
herzustellen!