Fenster ohne Fokus
- jacdelad
- Beiträge: 348
- Registriert: 03.02.2021 13:39
- Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
- Wohnort: Riesa
- Kontaktdaten:
Fenster ohne Fokus
Hallo,
ich habe eine Recht spezifische Frage: Für mein Ribbon gibt es Subfenster, z.B. ein ColorPicker. Wenn der aufgeht bekommt das Fenster den Fokus und das Fenster, auf dem das Ribbon liegt, verliert ihn. Wenn der ColorPicker den Fokus verliert lasse ich ihn automatisch schließen. So weit, so gut.
Mir wäre es lieber, wenn das Hauptfenster den Fokus behalten würde. Ich weiß auch wie das geht, Dank entsprechenden Style kann ich verhindern, dass der ColorPicker den Fokus bekommt. Aber: Kann ich dann auch Eingaben tätigen? Und wichtiger: Kann ich bemerken, wenn der Benutzer etwas außerhalb des Subfensters tut, z.B. ein Klick mit der Maus?
ich habe eine Recht spezifische Frage: Für mein Ribbon gibt es Subfenster, z.B. ein ColorPicker. Wenn der aufgeht bekommt das Fenster den Fokus und das Fenster, auf dem das Ribbon liegt, verliert ihn. Wenn der ColorPicker den Fokus verliert lasse ich ihn automatisch schließen. So weit, so gut.
Mir wäre es lieber, wenn das Hauptfenster den Fokus behalten würde. Ich weiß auch wie das geht, Dank entsprechenden Style kann ich verhindern, dass der ColorPicker den Fokus bekommt. Aber: Kann ich dann auch Eingaben tätigen? Und wichtiger: Kann ich bemerken, wenn der Benutzer etwas außerhalb des Subfensters tut, z.B. ein Klick mit der Maus?
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Re: Fenster ohne Fokus
Moin,
also ich habe das immer so verstanden, dass Tastatureingaben an das control/gadget gehen, welches den Fokus hat.
Mauseingaben (Klicks?, Scrollrad, Bewegungen) können auch an unter dem Mauscursor befindliche Fenster(controls/gadget weitergegeben werden.
Aus dem Programm heraus kann man natürlich in jedes Fenster/control/gadget schreiben.
Innerhalb einer Anwendung sollte ich Jeden Maus-Klick, der in meinen Fenstern passiert, 'bemerken'.
Und ich meine, dass der Maus-Klick in ein Fenster/control/gadget den Fokus auf das Fenster/control/gadget verändert. Evtl. muss dann programatisch der Fokus auf das vorherige Fenster/control/gadget zurückgegeben werden....
also ich habe das immer so verstanden, dass Tastatureingaben an das control/gadget gehen, welches den Fokus hat.
Mauseingaben (Klicks?, Scrollrad, Bewegungen) können auch an unter dem Mauscursor befindliche Fenster(controls/gadget weitergegeben werden.
Aus dem Programm heraus kann man natürlich in jedes Fenster/control/gadget schreiben.
Innerhalb einer Anwendung sollte ich Jeden Maus-Klick, der in meinen Fenstern passiert, 'bemerken'.
Und ich meine, dass der Maus-Klick in ein Fenster/control/gadget den Fokus auf das Fenster/control/gadget verändert. Evtl. muss dann programatisch der Fokus auf das vorherige Fenster/control/gadget zurückgegeben werden....
Mostly running PureBasic <latest stable version and current alpha/beta> (x64) on Windows 11 Home
- jacdelad
- Beiträge: 348
- Registriert: 03.02.2021 13:39
- Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
- Wohnort: Riesa
- Kontaktdaten:
Re: Fenster ohne Fokus
Naja, das stimmt schon, aber ich will ein Fenster ohne Fokus haben und bemerken wenn was außerhalb, also auf einem anderen Fenster, angeklickt wird, um mein Fenster zu schließen. Ich weiß halt nur nicht,ob das überhaupt geht. Ich muss nochmal die Ribbons von Windows anschauen, wie die das handhaben (natürlich nicht die Programmierung, nur wie es rüberkommt, wer den Fokus hat, etc.).
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Re: Fenster ohne Fokus
Wann ich es richtig verstehe, dann muss das gehen. Du kannst ja auch zwei Fenster öffnen und in der gemeinsamen Hauptschleife die Ereignisse abarbeiten.
Mostly running PureBasic <latest stable version and current alpha/beta> (x64) on Windows 11 Home
- jacdelad
- Beiträge: 348
- Registriert: 03.02.2021 13:39
- Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
- Wohnort: Riesa
- Kontaktdaten:
Re: Fenster ohne Fokus
Das geht nicht, weil das Ribbon über ein Modul läuft.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Re: Fenster ohne Fokus
Ich kenne leider 'das Ribbon' nicht und gegen Module habe ich eine gewisse Allergie entwickelt.
Ideen und Tipps die ich noch hätte, kennste wahrscheinlich eh und haste auch schon ausprobiert.
Also ich kann dann nix weiter beitragen. Sorry.
Happy coding and stay healthy.
Ideen und Tipps die ich noch hätte, kennste wahrscheinlich eh und haste auch schon ausprobiert.
Also ich kann dann nix weiter beitragen. Sorry.
Happy coding and stay healthy.
Mostly running PureBasic <latest stable version and current alpha/beta> (x64) on Windows 11 Home
- jacdelad
- Beiträge: 348
- Registriert: 03.02.2021 13:39
- Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
- Wohnort: Riesa
- Kontaktdaten:
Re: Fenster ohne Fokus
Trotzdem danke. Das Ribbon (hier im Forum zu finden) ist absichtlich in einem Modul, damit es abgekapselt ist, weil es recht umfangreich ist.
Ich melde mich mal, wenn ich eine Lösung gefunden habe oder daran verzweifelt bin.
Ich melde mich mal, wenn ich eine Lösung gefunden habe oder daran verzweifelt bin.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Re: Fenster ohne Fokus
Habe etwas zeit ...
Sub Fenster schließen wenn Haupt Fenster Focus verliert
P.S. Unter Linux geht nicht, da hier die Fenster Event intern anders von gtk verarbeitet wird,
Sub Fenster schließen wenn Haupt Fenster Focus verliert
P.S. Unter Linux geht nicht, da hier die Fenster Event intern anders von gtk verarbeitet wird,
Code: Alles auswählen
;-TOP
Enumeration Windows
#Main
#Dialog
EndEnumeration
Enumeration Gadgets
#Main_Button
EndEnumeration
Enumeration Status
#MainStatusBar
EndEnumeration
Procedure Dialog()
#DialogStyle = #PB_Window_Tool
If OpenWindow(#Dialog, #PB_Ignore, #PB_Ignore, 400, 200, "Dialog" , #DialogStyle, WindowID(#Main))
EndIf
EndProcedure
Procedure Main()
#MainStyle = #PB_Window_SystemMenu | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget
If OpenWindow(#Main, #PB_Ignore, #PB_Ignore, 800, 600, "Window" , #MainStyle)
ButtonGadget(#Main_Button, 10, 10, 120, 25, "Dialog")
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_ActivateWindow
Debug "#PB_Event_ActivateWindow"
Case #PB_Event_DeactivateWindow
Debug "#PB_Event_DeactivateWindow"
Select EventWindow()
Case #Main
If IsWindow(#Dialog)
If GetActiveWindow() <> #Dialog
CloseWindow(#Dialog)
Debug "Close window dialog (1)"
EndIf
EndIf
Case #Dialog
If GetActiveWindow() <> #main
CloseWindow(#Dialog)
Debug "Close window dialog (2)"
EndIf
EndSelect
Case #PB_Event_Gadget
Select EventGadget()
Case #Main_Button
If IsWindow(#Dialog)
SetActiveWindow(#Dialog)
Else
Dialog()
EndIf
EndSelect
EndSelect
ForEver
EndIf
EndProcedure : Main()
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
- jacdelad
- Beiträge: 348
- Registriert: 03.02.2021 13:39
- Computerausstattung: Ryzen 5800X, 108TB Festplatte, 32GB RAM, Radeon 7770OC
- Wohnort: Riesa
- Kontaktdaten:
Re: Fenster ohne Fokus
Vielen Dank erstmal. Das Ribbon läuft momentan eh nur unter Windows, da ich einige API-Aufrufe verwende. Ich komme hoffentlich morgen dazu das zu testen, ansonsten etwas später. Außerdem geht es ja auch Datum, dass was anderes im Hauptfenster passiert (Gadget angeklickt...), eben außerhalb des Ribbon-Subfensters. Aber das das Subfenster ja auch Eingaben in Stringgadgets bearbeiten muss komme ich wahrscheinlich sowiedo nicht darum ihm den Fokus zu geben.
PureBasic 6.04/XProfan X4a/Embarcadero RAD Studio 11/Perl 5.2/Python 3.10
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB
Windows 11/Ryzen 5800X/32GB RAM/Radeon 7770 OC/3TB SSD/11TB HDD
Synology DS1821+/36GB RAM/130TB
Synology DS920+/20GB RAM/54TB
Synology DS916+ii/8GB RAM/12TB