Minimieren frage

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Minimieren frage

Beitrag von X360 Andy »

Diese frage beschäftigt mich schon länger, und bis jetzt hab ich noch keine Lösung darauf gefunden. :mrgreen:

Also....


Code: Alles auswählen

If EventID = #PB_Event_CloseWindow
   Quit = 1
   Debug "Geschlossen"
EndIf
Kann ich sowas auch mit dem minimieren machen ?

Das also etwas im Fenster ausgelöst wird wenn auf den minimieren Button drücke.

Z.b
Hidewindow und dann ein SystrayIcon anlegen.

Gibts dafür eine Lösung ?
Hab zumindest beim suchen nicht das gefunden was mir helfen würde, nur wie ich das Fenster durch eine Aktion minimieren kann.


Mfg
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Autocomplete hat geschrieben:#PB_Event_MinimizeWindow
:?:
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Error Meldung meint hat geschrieben: Constant not Found #PB_Event_MinimizeWindow
:!:

Liegts an PB4.20 ? :idea:
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

schätzungsweise. hab nicht auf deine sig geachtet.
Debug #PB_Event_MinimizeWindow hat geschrieben:13107
... probier mal, ob dir

Code: Alles auswählen

#PB_Event_MinimizeWindow = 13107
das gewünschte Ergebnis liefert...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
X360 Andy
Beiträge: 1206
Registriert: 11.05.2008 00:22
Wohnort: Bodensee
Kontaktdaten:

Beitrag von X360 Andy »

Nope zumindest

Code: Alles auswählen


If OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
Repeat
EventID=WaitWindowEvent()
Until EventID = 13107
EndIf

geht das hier nicht.

Trotzdem danke

Aber ich glaub ich Update wenn mein Dad morgen kommt mal auf 4.30.
Da ich Heute gesehen habe , das Pb 4.30 besseren DirectX9 Support hat....
Benutzeravatar
Shardik
Beiträge: 746
Registriert: 25.01.2005 12:19

Beitrag von Shardik »

Einen Linksklick auf die "Fenster minimieren"-Schaltfläche zu entdecken und eine Meldung auszugeben, ist auch unter PB 4.20 nicht schwierig. Beispiele (die sowohl unter PB 4.20 und 4.30 laufen) wurden schon z.B. von Fluid Byte (mit reinen PB-Anweisungen ohne API: http://www.purebasic.fr/english/viewtop ... 2&start=18) oder edel (http://www.purebasic.fr/german/viewtopi ... 62&start=4) gezeigt. Möchte man aber _vor_ dem Minimieren eine Aktion durchführen, hilft mein folgendes Beispiel weiter. Auch in PB 4.30 bei Nutzung von #PB_Event_MinimizeWindow in der Event-Schleife hält ein Delay(2000) den Minimierungsprozess übrigens nicht auf (mein Code-Beispiel aber schon :wink:)!

Code: Alles auswählen

; Achtung! Die Delay-Anweisung im Callback sollte man _nie_ in produktivem Code verwenden.
; Sie dient hier nur zur Demonstration und sollte im Produktiv-Code durch den Aufruf der benötigten Prozedur ersetzt werden!

Procedure WindowCallback(WindowHandle, Msg, wParam, lParam)
  If Msg = #WM_SYSCOMMAND 
    If wParam = #SC_MINIMIZE 
      Debug "Fenster wird in 2 Sekunden minimiert..."
      Delay(2000)
    EndIf 
  EndIf 

  ProcedureReturn #PB_ProcessPureBasicEvents 
EndProcedure

OpenWindow(0,0,0,500,250,"Window",#PB_Window_SystemMenu|#PB_Window_ScreenCentered|#PB_Window_MinimizeGadget)
SetWindowCallback(@WindowCallback(), 0)

Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

unter 4.3 gehts auch mit Andys code.

Shardiks Code ist mir zu groß :wink:
Win11 x64 | PB 6.20
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 »

Andesdaf hat geschrieben:unter 4.3 gehts auch mit Andys code.
Aber Du kannst das minimieren selber nicht verhindern. Beenden ist kein Problem.
Man kann den Status aber sofort selber wieder ändern, zum Beispiel in
HideWindow() bei Trayanwendungen. Das geht ohne Callback
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
Andesdaf
Moderator
Beiträge: 2673
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Beitrag von Andesdaf »

wenn man es als Button nutzen will geht das, ja.
Win11 x64 | PB 6.20
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 »

Andesdaf hat geschrieben:wenn man es als Button nutzen will geht das, ja.
Er minimiert aber trotzdem :lol:
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