Problem Canvas und MouseWheel

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
ProgOldie
Beiträge: 236
Registriert: 19.05.2012 17:09
Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02

Problem Canvas und MouseWheel

Beitrag von ProgOldie »

Warum ergibt sich im folgenden Programmausschhnitt immer der positive Wert 8, egal wie herum ich das Mausrad drehe?

Code: Alles auswählen

If Event = #PB_Event_Gadget And EventGadget() = CanvasID   
    Select EventType()
      Case #PB_EventType_MouseWheel
        MouseWheel=#PB_Canvas_WheelDelta
        StatusBarText(0,1,"Wheel "+Str(MouseWheel))
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Benutzeravatar
Thorsten1867
Beiträge: 1359
Registriert: 04.02.2005 15:40
Computerausstattung: [Windows 10 x64] [PB V5.7x]
Wohnort: Kaufbeuren
Kontaktdaten:

Re: Problem Canvas und MouseWheel

Beitrag von Thorsten1867 »

Das Mausrad gibt keine absolute Postition wieder, sondern nur die Schritte vorwärts (+1) bzw. rückwärts (-1).

Im Beispiel unten wird die Scrollbar-Position bei jedem Drehen entsprechend geändert. Die Procedure ist mit dem entsprechendem Event verknüpft.

=> BindGadgetEvent(MarkDown()\CanvasNum, @_MouseWheelHandler(), #PB_EventType_MouseWheel)

Code: Alles auswählen

 Procedure _MouseWheelHandler()
    Define.i GNum = EventGadget()
    Define.i Delta

      Delta = GetGadgetAttribute(GNum, #PB_Canvas_WheelDelta)

      If MarkDown()\VScroll\Hide = #False
        SetThumbPosY_(MarkDown()\VScroll\Pos - Delta)
        Draw_(#Vertical)
      EndIf
      
    EndIf
    
EndProcedure
Download of PureBasic - Module
Download of PureBasic - Programmes

[Windows 11 x64] [PB V6]

Bild
Andesdaf
Moderator
Beiträge: 2660
Registriert: 15.06.2008 18:22
Wohnort: Dresden

Re: Problem Canvas und MouseWheel

Beitrag von Andesdaf »

Code: Alles auswählen

MouseWheel=#PB_Canvas_WheelDelta
Damit weist du der Variable nur den Wert der Konstante zu. Du brauchst aber das Ergebnis von GetGadgetAttribute.
Win11 x64 | PB 6.00 (x64)
Benutzeravatar
ProgOldie
Beiträge: 236
Registriert: 19.05.2012 17:09
Computerausstattung: Windows11, Arduinos, Pi3, PureBasic 6.02

Re: Problem Canvas und MouseWheel

Beitrag von ProgOldie »

Danke, klappt
Windows10 / PB5.70 / Arduino (-Due) / Raspberry Pi3 /Linux Mint 18
Antworten