Taskleiste

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
C4rizz
Beiträge: 223
Registriert: 01.05.2006 12:43
Computerausstattung: Desktop : Amd Athlon X2 3,2 ghz Black Edition. 4GB Corsair XMS DDR2, nVidia 460 gtx Sonic Extreme

Notebook : [Asus] i5 @ 2,9 ghz, 8GB Corsair DDR3, nVidia gt 540m

Internet : DSL - 16 Mbit | HSDPA - 7,2 Mbit
Wohnort: Celle

Taskleiste

Beitrag 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.
PB 3.94/4.10
Meine Hompage
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Re: Taskleiste

Beitrag 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. ;-)
a²+b²=mc²
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Die zugehörige Lib heißt SysTray. Beispiel in der Hilfe testen und dann
weitere Fragen stellen!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Benutzeravatar
C4rizz
Beiträge: 223
Registriert: 01.05.2006 12:43
Computerausstattung: Desktop : Amd Athlon X2 3,2 ghz Black Edition. 4GB Corsair XMS DDR2, nVidia 460 gtx Sonic Extreme

Notebook : [Asus] i5 @ 2,9 ghz, 8GB Corsair DDR3, nVidia gt 540m

Internet : DSL - 16 Mbit | HSDPA - 7,2 Mbit
Wohnort: Celle

Beitrag von C4rizz »

OK danke schon mal.
Werd ich mir mal durchlesen. :bluescreen:
PB 3.94/4.10
Meine Hompage
a14xerus
Beiträge: 1440
Registriert: 14.12.2005 15:51
Wohnort: Aachen

Beitrag 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
Benutzeravatar
C4rizz
Beiträge: 223
Registriert: 01.05.2006 12:43
Computerausstattung: Desktop : Amd Athlon X2 3,2 ghz Black Edition. 4GB Corsair XMS DDR2, nVidia 460 gtx Sonic Extreme

Notebook : [Asus] i5 @ 2,9 ghz, 8GB Corsair DDR3, nVidia gt 540m

Internet : DSL - 16 Mbit | HSDPA - 7,2 Mbit
Wohnort: Celle

Beitrag 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.
PB 3.94/4.10
Meine Hompage
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag 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!
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Antworten