Klick auf ContainerGadget?
Klick auf ContainerGadget?
Hi.
Kann ich abfragen, ob ein Klick auf ein ContainerGadget ausgeführt wurde?
Kann ich abfragen, ob ein Klick auf ein ContainerGadget ausgeführt wurde?
Re: Klick auf ContainerGadget?
Code: Alles auswählen
Define Event, WindowHandle
Define MousePos.POINT
If OpenWindow(0, 500, 500, 800, 800, "")
ContainerGadget(0, 10, 10, 500, 500, #PB_Container_Single)
Repeat
Event = WaitWindowEvent()
If Event = #WM_LBUTTONUP
GetCursorPos_(@MousePos)
WindowHandle = WindowFromPoint_(PeekQ(@MousePos))
If GadgetID(0) = WindowHandle
Debug "ContainerGadget wurde angeklickt!"
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
EndIf

Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
- 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
Re: Klick auf ContainerGadget?
Und jetzt noch Crossplattform:
Code: Alles auswählen
EnableExplicit
Procedure MouseOverGadget(window, gadget)
If (WindowMouseX(window) >= GadgetX(gadget)) And (WindowMouseX(window) <= (GadgetX(gadget) + GadgetWidth(gadget)))
If (WindowMouseY(window) >= GadgetY(gadget)) And (WindowMouseY(window) <= (GadgetY(gadget) + GadgetHeight(gadget)))
ProcedureReturn #True
EndIf
EndIf
EndProcedure
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "")
ContainerGadget(0, 50, 50, 200, 200, #PB_Container_Raised)
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_LeftClick
If MouseOverGadget(0, 0)
Debug "Container"
EndIf
EndSelect
ForEver
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.

Re: Klick auf ContainerGadget?
Wow, wunderbar, vielen Dank! 

- NicTheQuick
- Ein Admin
- Beiträge: 8809
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 64 GB DDR4-3200
Ubuntu 24.04.2 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
Re: Klick auf ContainerGadget?
Ich würde sogar statt einem <= nur ein < nehmen. Das >= wiederum stimmt aber so.
- 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
Re: Klick auf ContainerGadget?
Nur weil Du es bist

Code: Alles auswählen
EnableExplicit
Procedure MouseOverGadget(window, gadget)
If (WindowMouseX(window) >= GadgetX(gadget)) And (WindowMouseX(window) < (GadgetX(gadget) + GadgetWidth(gadget)))
If (WindowMouseY(window) >= GadgetY(gadget)) And (WindowMouseY(window) < (GadgetY(gadget) + GadgetHeight(gadget)))
ProcedureReturn #True
EndIf
EndIf
EndProcedure
Procedure Event_LeftClick()
If MouseOverGadget(0, 0)
Debug "Container"
EndIf
EndProcedure
OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "")
ContainerGadget(0, 50, 50, 200, 200, #PB_Container_Raised)
BindEvent(#PB_Event_LeftClick, @Event_LeftClick())
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
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.

Re: Klick auf ContainerGadget?
Nur die Lösung hat ein Problem. Was, wenn der Container versteckt ist? Dann sollte man ihn auch nicht klicken können...
Dafür noch ne Lösung?
Dafür noch ne Lösung?
- 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
Re: Klick auf ContainerGadget?
Wer versteckt den Container?
Der sollte auch ein Flag setzen und auswerten können, oder?
Gruß
Thomas
PS: Zur not geht es auch mit API: IsWindowVisible_()
Der sollte auch ein Flag setzen und auswerten können, oder?
Gruß
Thomas
PS: Zur not geht es auch mit API: IsWindowVisible_()
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.

Re: Klick auf ContainerGadget?
Jo, hast Recht, aber danke! 
