Seite 1 von 3
Minimieren frage
Verfasst: 26.02.2009 22:19
von X360 Andy
Diese frage beschäftigt mich schon länger, und bis jetzt hab ich noch keine Lösung darauf gefunden.
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
Verfasst: 26.02.2009 22:24
von Kaeru Gaman
Autocomplete hat geschrieben:#PB_Event_MinimizeWindow

Verfasst: 26.02.2009 22:28
von X360 Andy
Error Meldung meint hat geschrieben:
Constant not Found #PB_Event_MinimizeWindow
Liegts an PB4.20 ?

Verfasst: 26.02.2009 22:36
von Kaeru Gaman
schätzungsweise. hab nicht auf deine sig geachtet.
Debug #PB_Event_MinimizeWindow hat geschrieben:13107
... probier mal, ob dir
das gewünschte Ergebnis liefert...
Verfasst: 26.02.2009 22:41
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....
Verfasst: 27.02.2009 12:00
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

)!
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
Verfasst: 27.02.2009 13:59
von Andesdaf
unter 4.3 gehts auch mit Andys code.
Shardiks Code ist mir zu groß

Verfasst: 27.02.2009 14:14
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
Verfasst: 27.02.2009 14:21
von Andesdaf
wenn man es als Button nutzen will geht das, ja.
Verfasst: 27.02.2009 14:22
von ts-soft
Andesdaf hat geschrieben:wenn man es als Button nutzen will geht das, ja.
Er minimiert aber trotzdem
