Hallo,
aus meinem Hauptfenster wird ein Child-Fenster geöffnet.
Gibt es eine Möglichkeit, den Fokusverlust des Childfensters zu verhindern? Es soll nur durch den Druck auf einen Button geschlossen werden.
Vielen Dank.
Fenster - Focusverlust verhindern
- 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
Beim erstellen des Child-Fensters die ParentWindowID (letzter Parameter)
mit angeben, Haupfenster Disablen!
Ich hoffe Du meinst das
Gruß
Thomas
mit angeben, Haupfenster Disablen!
Ich hoffe Du meinst das
Gruß
Thomas
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
- 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
Gibts nichtKaeru Gaman hat geschrieben:ich glaube eher, er meint dieses MODAL-flag...
wie war denn nochmal die korrekte konstante, ich such mir grad nen wolf...

(Such mal weiter, so ein Flag gibts nicht)
Hier ein Beispiel:
Code: Alles auswählen
Procedure CreateChild()
OpenWindow(1, 100, 100, 200, 200, "Childfenster", #PB_Window_SystemMenu, WindowID(0))
EndProcedure
If OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "Hauptfenster")
CreateGadgetList(WindowID(0))
ButtonGadget(0, 10, 10, 80, 30, "Child")
EndIf
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
If EventWindow() = 0
Break
Else
If IsWindow(1)
CloseWindow(1)
DisableWindow(0, #False)
EndIf
EndIf
Case #PB_Event_Gadget
Select EventGadget()
Case 0
If Not IsWindow(1)
DisableWindow(0, #True)
CreateChild()
EndIf
EndSelect
EndSelect
ForEver
Gruß
Thomas
Werde auch mal Modalflakes suchen, sind die von Kellog's ?
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
ich meine das flag, das bei einem requester gesetzt ist, so dass man einen requester erst wieder schließen muss, bevor man das hauptfenster wieder benutzen kann....
is witzig, dass das so mit disable funktioniert...
für den aufruf von requestern gab es irgendwie ein flag, wodurch das auch bewerkstelligt wird/wurde...
die Modalflakes sind nicht von Kellogg, aber du kannst dir auch nen Salat aus Casual Endievias machen...
is witzig, dass das so mit disable funktioniert...
für den aufruf von requestern gab es irgendwie ein flag, wodurch das auch bewerkstelligt wird/wurde...
die Modalflakes sind nicht von Kellogg, aber du kannst dir auch nen Salat aus Casual Endievias machen...
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.
- 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
ts-soft hat geschrieben:er meint genau das, was ich beschrieben habe!
Schwein gehabtThoPie hat geschrieben:Vielen Dank.

Für Systemdialoge gibts ein Flag. Für Dialoge gibts einen Fensterstil, aber
PB-Fenster sind keine Dialoge, sondern werden intern mit CreateWindowEx_() erstellt.
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.

@ThoPie
oder gleich die fenster+events richtig verwalten.
c ya,
nco2k
oder gleich die fenster+events richtig verwalten.
Code: Alles auswählen
Enumeration
#WindowA
#WindowB
EndEnumeration
Enumeration
#ButtonA
#ButtonB
EndEnumeration
Procedure OpenWinA()
If OpenWindow(#WindowA, 0, 0, 300, 200, "WinA", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_ScreenCentered)
If CreateGadgetList(WindowID(#WindowA))
ButtonGadget(#ButtonA, 5, 5, 100, 25, "Open WinB")
SetActiveWindow(#WindowA)
ProcedureReturn #True
EndIf
CloseWindow(#WindowA)
EndIf
ProcedureReturn #False
EndProcedure
Procedure OpenWinB()
If OpenWindow(#WindowB, 0, 0, 200, 100, "WinB", #PB_Window_SystemMenu | #PB_Window_WindowCentered, WindowID(#WindowA))
If CreateGadgetList(WindowID(#WindowB))
ButtonGadget(#ButtonB, 5, 5, 100, 25, "Close WinB")
DisableWindow(#WindowA, #True)
SetActiveWindow(#WindowB)
ProcedureReturn #True
EndIf
CloseWindow(#WindowB)
EndIf
ProcedureReturn #False
EndProcedure
Procedure CloseWinA()
End
EndProcedure
Procedure CloseWinB()
CloseWindow(#WindowB)
DisableWindow(#WindowA, #False)
SetActiveWindow(#WindowA)
EndProcedure
Procedure EventWinA(WinEvent)
Select WinEvent
Case #PB_Event_CloseWindow
CloseWinA()
Case #PB_Event_Gadget
Select EventGadget()
Case #ButtonA
OpenWinB()
EndSelect
EndSelect
EndProcedure
Procedure EventWinB(WinEvent)
Select WinEvent
Case #PB_Event_CloseWindow
CloseWinB()
Case #PB_Event_Gadget
Select EventGadget()
Case #ButtonB
CloseWinB()
EndSelect
EndSelect
EndProcedure
If OpenWinA()
Repeat
WinEvent = WaitWindowEvent()
Select EventWindow()
Case #WindowA
EventWinA(WinEvent)
Case #WindowB
EventWinB(WinEvent)
EndSelect
ForEver
EndIf : End
nco2k
~|__/
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.
..o.o.. <--- This is Einkaufswagen. Copy Einkaufswagen into your signature to help him on his way to world domination.