Überprüfen, ob ein Window minimiert wurde?
- HeX0R
- Beiträge: 3042
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Nicht in der Repeatschleife, sondern nach einem #PB_Event_MoveWindow (oder war es nach einem #PB_Event_SizeWindow ? *grübel*)
Und die zweite Frage, die so gar nix mit der ersten zutun hat:
Nimm Fragezeichen anstatt Klammeraffen...
Und die zweite Frage, die so gar nix mit der ersten zutun hat:
Nimm Fragezeichen anstatt Klammeraffen...
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
- PureBasic4.0
- Beiträge: 785
- Registriert: 29.10.2006 17:26
- Wohnort: 127.0.0.1
@HeX0R
#PB_Event_MoveWindow = Wird ermittelt, ob das Fenster verschoben wurde
#PB_Event_SizeWindow = Wird ermittelt, ob die Größe des Fensters geändert wurde.
Also #PB_Window_Minimize ist schon richtig, diese Variante benutze ich schon lange und funktioniert immer.
@Edit:
Na egal, das Problem wurde sowieso behoben
Nicht in der Repeatschleife, sondern nach einem #PB_Event_MoveWindow (oder war es nach einem #PB_Event_SizeWindow ? *grübel*

#PB_Event_MoveWindow = Wird ermittelt, ob das Fenster verschoben wurde
#PB_Event_SizeWindow = Wird ermittelt, ob die Größe des Fensters geändert wurde.
Also #PB_Window_Minimize ist schon richtig, diese Variante benutze ich schon lange und funktioniert immer.
@Edit:
Na egal, das Problem wurde sowieso behoben

- PureBasic4.0
- Beiträge: 785
- Registriert: 29.10.2006 17:26
- Wohnort: 127.0.0.1
- HeX0R
- Beiträge: 3042
- Registriert: 10.09.2004 09:59
- Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win11 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2 + 3 - Kontaktdaten:
Extra für dich, hab ich es etwas veranschaulicht:RSBasic hat geschrieben:@HeX0RNicht in der Repeatschleife, sondern nach einem #PB_Event_MoveWindow (oder war es nach einem #PB_Event_SizeWindow ? *grübel*![]()
#PB_Event_MoveWindow = Wird ermittelt, ob das Fenster verschoben wurde
#PB_Event_SizeWindow = Wird ermittelt, ob die Größe des Fensters geändert wurde.
Also #PB_Window_Minimize ist schon richtig, diese Variante benutze ich schon lange und funktioniert immer.
Code: Alles auswählen
If OpenWindow(0, 0, 0, 100, 100, "", #PB_Window_MinimizeGadget)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_MoveWindow
If GetWindowState(0) & #PB_Window_Minimize
Debug "Minimiert"
EndIf
EndSelect
ForEver
EndIf
{Home}.:|:.{Codes}.:|:.{Downloads}.:|:.{History Viewer Online}.:|:.{Bier spendieren}
- PureBasic4.0
- Beiträge: 785
- Registriert: 29.10.2006 17:26
- Wohnort: 127.0.0.1
@PureBasic4.0
Sehr gut
@HeX0R
>Extra für dich, hab ich es etwas veranschaulicht:
Sehr nett von dir, danke
Kann man auch, aber ich hab eigentlich immer so gemacht und hab trotzdem keine Probleme:
Na ok, es kann sein dass dein Beispiel-Code besser ist, weil du nur ein Event zurückbekommst.
Man kann so oder so machen
Na ok
Sehr gut

@HeX0R
>Extra für dich, hab ich es etwas veranschaulicht:
Sehr nett von dir, danke

Kann man auch, aber ich hab eigentlich immer so gemacht und hab trotzdem keine Probleme:
Code: Alles auswählen
If OpenWindow(0,0,0,100,100,"testwindow",#PB_Window_MinimizeGadget)
Repeat
EventID=WaitWindowEvent()
If GetWindowState(0)=#PB_Window_Minimize
Debug "Minimiert"
EndIf
If EventID = #PB_Event_CloseWindow
Quit=1
EndIf
Until Quit=1
EndIf
Man kann so oder so machen

Na ok
- 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
>> Man kann so oder so machen
Aber nur wenn man sein Programm umbedingt verlangsamen möchte
Keinen Code ausserhalb eines dafür vorgesehenen Ereignisses!
Wenn z.B. bei jedem überfahren eines Controlls mit der Maus
GetWindowState() ausgeführt wird, ist das schon sehr unschön
Aber nur wenn man sein Programm umbedingt verlangsamen möchte

Keinen Code ausserhalb eines dafür vorgesehenen Ereignisses!
Wenn z.B. bei jedem überfahren eines Controlls mit der Maus
GetWindowState() ausgeführt wird, ist das schon sehr unschön

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.

Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.

-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
> Keinen Code ausserhalb eines dafür vorgesehenen Ereignisses!
sehr richtig und absolut wichtig.
und noch ein hinweis:
unter Windows ist das korrespondierende ereignis #PB_Event_MoveWindow, wie hier gezeigt.
unter Linux muss man auf #PB_Event_SizeWindow reagieren.
die beiden OS handlen das minimieren unterschiedlich.
sehr richtig und absolut wichtig.
und noch ein hinweis:
Code: Alles auswählen
Case #PB_Event_MoveWindow
If GetWindowState(0) & #PB_Window_Minimize
Debug "Minimiert"
EndIf
unter Linux muss man auf #PB_Event_SizeWindow reagieren.
die beiden OS handlen das minimieren unterschiedlich.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
@HeX0R & @ts-soft & @Kaeru Gaman
OK, das habe ich nicht gewusst.
Ich habs immer so programmiert, wenn ich mein Programm in die Systray beim Minimieren reinmachen wollte.
Es kam keine Fehlermeldungen, kein Performanceverlust entdeckt und daher war alles Schick für mich.
Ich kanns ja nachher, wenn ich an WT, SoT, AT, QS, 2DMEPB, QFM oder/und CAT weiter progge, wieder ändern
Danke für den Tipp
OK, das habe ich nicht gewusst.
Ich habs immer so programmiert, wenn ich mein Programm in die Systray beim Minimieren reinmachen wollte.
Es kam keine Fehlermeldungen, kein Performanceverlust entdeckt und daher war alles Schick für mich.
Ich kanns ja nachher, wenn ich an WT, SoT, AT, QS, 2DMEPB, QFM oder/und CAT weiter progge, wieder ändern

Danke für den Tipp
