Page 1 of 1
4.60B3: Canvas: #PB_EventType_MouseWheel does not work.
Posted: Wed Jul 27, 2011 8:35 am
by IceSoft
Canvas: #PB_EventType_MouseWheel does not work.
For tests source:
Replace on the canvas example source.
Code: Select all
Select EventType()
Case #PB_EventType_MouseWheel
MessageRequester("Wheel","works now.")
Case #PB_EventType_LeftButtonDown
Re: 4.60B3: Canvas: #PB_EventType_MouseWheel does not work.
Posted: Wed Jul 27, 2011 9:35 am
by atomo
You must use the flag #PB_Canvas_Keyboard on CanvasGadget creation to get MouseWheel events.
Re: 4.60B3: Canvas: #PB_EventType_MouseWheel does not work.
Posted: Wed Jul 27, 2011 10:21 am
by IceSoft
atomo wrote:You must use the flag #PB_Canvas_Keyboard on CanvasGadget creation to get MouseWheel events.
Have you tried it?
On my deployment (Windows 7 64bit) it is not working, also not with the #PB_Canvas_Keyboard flag.
Re: 4.60B3: Canvas: #PB_EventType_MouseWheel does not work.
Posted: Wed Jul 27, 2011 11:01 am
by atomo
This code works for me, the CanvasGadget must also have the focus :
Code: Select all
Window = OpenWindow(#PB_Any, 0, 0, 200, 200, "CanvasGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If Window
CanvasGadget = CanvasGadget(#PB_Any, 0, 0, 200, 200, #PB_Canvas_Keyboard)
Repeat
Event = WaitWindowEvent(1)
If Event = #PB_Event_Gadget
If EventGadget() = CanvasGadget
If EventType() = #PB_EventType_MouseWheel
Debug "MouseWheel"
EndIf
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
EndIf
Re: 4.60B3: Canvas: #PB_EventType_MouseWheel does not work.
Posted: Wed Jul 27, 2011 1:00 pm
by IceSoft
@atome,
Your code works only if I pressed the mousebutton before.
=> that is the bug.
Re: 4.60B3: Canvas: #PB_EventType_MouseWheel does not work.
Posted: Wed Jul 27, 2011 1:20 pm
by bobobo
Focus !!
A SetActiveGadget(CanvasGadget) before Repeat will do
Re: 4.60B3: Canvas: #PB_EventType_MouseWheel does not work.
Posted: Wed Jul 27, 2011 1:21 pm
by STARGĂ…TE
Your code works only if I pressed the mousebutton before.
=> that is the bug.
No it is not, because the gadget must be activated first:
MouseWheel not "same" as MouseMove or so... it needs a focus
Code: Select all
Window = OpenWindow(#PB_Any, 0, 0, 400, 200, "CanvasGadget", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
If Window
CanvasGadget1 = CanvasGadget(#PB_Any, 0, 0, 200, 200, #PB_Canvas_Keyboard|#PB_Canvas_DrawFocus)
CanvasGadget2 = CanvasGadget(#PB_Any, 200, 0, 200, 200, #PB_Canvas_Keyboard|#PB_Canvas_DrawFocus)
Repeat
Event = WaitWindowEvent(1)
If Event = #PB_Event_Gadget
Select EventGadget()
Case CanvasGadget1
Select EventType()
Case #PB_EventType_MouseWheel
Debug "MouseWheel 1"
Case #PB_EventType_MouseMove
Debug "MouseMove 1"
EndSelect
Case CanvasGadget2
Select EventType()
Case #PB_EventType_MouseWheel
Debug "MouseWheel 2"
Case #PB_EventType_MouseMove
Debug "MouseMove 2"
EndSelect
EndSelect
EndIf
Until Event = #PB_Event_CloseWindow
EndIf