@Lord
You just don't get it. Your nice example is nothing than unnecessary SchnickSchnack for this problem, because your basic mistake lies simply in your event loop:
Code: Select all
Repeat
Event=WaitWindowEvent()
If Event=#WM_MOUSEWHEEL
Scroll((EventwParam()>>31)+1)
EndIf
Until Event=#PB_Event_CloseWindow
As I wrote before, you have no influence, when and how often a high resolution mousewheel fires an event. Only if the sum of the values in EventwParam() reaches a value of 120, your mouse wheel has the rotation angle back, which normally corresponds to a grid at the mousewheel.
Just a simple example: If you want to use the mouse wheel as middle mouse button, a high-resolution mouse wheel will surely fire several #WM_MOUSEWHEEL events, because the mouse wheel is also turned minimally when pressed. Then EventwParam() could look like this:
-3
+4
+2
-2
In this example your program already receives four events, your display will jump wildly up and down, although the user of your app only wanted to press the middle mouse button.
Lord wrote:But it's fine if you got a highresolution mouse and want to play with it.
Wow, what ignorance. Maybe it should come in your consciousness that there are mice with high-resolution mouse wheels and if a programmer wants to call himself a programmer, then he should also consider this, especially if it is feasible with few additional lines of code. Mice with high-resolution mouse wheels are not only used by gamers, they are also used in CAD, which has absolutely nothing to do with playing.
But if you think that Microsoft is writing useless stuff, because you know better and you think that Fred has no idea that he has built this crap into the CanvasGadget, then just let it go.