Abfrage Scrollrad Maus



Jac, 07.01.2008 17:37: Vor nicht einmal 24 Stunden wurde was dazu in der Babyklappe gepostet...


David Strutz, 07.01.2008 18:46:   Zitat von ""Baby-Klappe"": „

' XPSE-Quelltext erkannt.XXProfan (XPSE)  

'Source wurde am 07.01.2008 in die Babyklappe auf XProfan.Com abgelegt:

//Mausradunterstützung per usermessages

const WM_MOUSEWHEEL=$20A

userMessages WM_MOUSEWHEEL

        caseof WM_MOUSEWHEEL
        
            if hiword(uwparam)==120 {
                
                            
            } else {
                
                            
            }


Thomas F., 07.01.2008 23:31: Ich kann suchen und lesen. Wenn ich c++,VB oder Xpse hätte umsetzen könnte, hätte ich nicht hier gepostet.


Dietmar Horn, 07.01.2008 23:44: Hallo Thomas,
Lasse doch über solchen "iF-Kauderwelsch-XPSE-Code" einfach mal XPSE drüberlaufen.
Zum Beispiel: "XPSE TEST.PRF" von der Kommandozeile (z.B. vom Total-Commander aus gestartet).
Danach schaust Du Dir die TEST.ENH im selben Ordner an und formatierst sie noch ggf. entsprechend Deiner Vorstellungen. Somit hast Du 1-2-fix reinen XProfan-Code.
Denn weil XPSE sein "Kauderwelsch" zum Interpretieren und Compilieren sowieso nur in XProfan-Syntax an den XProfan-Compiler übergeben kann, dürfte das kein Problem sein, solche Codes "abzufangen".
Aus genau diesem Grunde hatte ich für meinen XProfan-Manager ein Mini-Tool geschrieben und integriert, welches sowas 1-2-fix automatisch erledigt.
Gruss
Dietmar


David Strutz, 07.01.2008 23:45: Hier reicht lesen, die Konstante ist klar mit $20A beschrieben und es ist ersichtlich das diese als userMessage deklariert wird. Die userMessage kannste abfragen, und über den hiWord vom uWParam ermitteln ob hoch oder runter gedrückt wurde.


David Strutz, 07.01.2008 23:48: 

' XPSE-Quelltext erkannt.XXProfan (XPSE)  

{$cleq}
const wm_mousewheel=$20A
userMessages wm_mousewheel

cls

do {
    
    waitInput
    
    select uMessage
        
        caseof wm_mousewheel

            locate 1,1

            if hiword(uwparam)==120 {

                print getTickcount,"hoch  "      
                       
            } else {

                print getTickcount,"runter"    
            
            }

    endSelect
    
}

end


USERMESSAGES $20A
CLS
WHILE 1
   WAITINPUT
   SELECT %UMESSAGE
   CASEOF $20A
   LOCATE 1,1
   IF HIWORD(&UWPARAM)=120
      PRINT &GETTICKCOUNT,"hoch"
   ELSE
      PRINT &GETTICKCOUNT,"runter"
   ENDIF
   ENDSELECT
ENDWHILE


Dietmar Horn, 07.01.2008 23:53: Falsch:
  Zitat: „und hier die Kauderwelschvariante
Richtiger wäre:
" ... und hier die Non-Kauderwelschvariante ..."
iF scheint evtl. leicht genervt zu sein ...
Gruss
Dietmar


Dietmar Horn, 07.01.2008 23:57: Das ist unfair, dass Du Dein Posting nachträglich editiert hast, so dass mein Zitat nun zusammenhanglos im Raum steht ...


David Strutz, 07.01.2008 23:59: >> iF scheint evtl. leicht genervt zu sein ...
Keines Wegs.


Thomas F., 08.01.2008 00:34: Danke für die Hilfe. Ich vermute auch, dass die letzten Serverprobleme iF aufgerieben haben könnten oder er hat es doch mit berlinerischer Gelassenheit weggesteckt.
@iF: sind die +/-120 verbindlich? Habe auch von +/-60 gelesen. In einem VB-Code erfolgt die Abfrage nur, ob wParam + oder - ist?

' Alle Messages durchlassen bis auf WM_MOUSEWHEEL!
If uMsg = WM_MOUSEWHEEL Then
   ' Mausrad wurde gedreht!
   nValue = HiWord(wParam)
   nEvent = LoWord(wParam)
   x = LoWord(lParam)
   y = HiWord(lParam)
   If wParam < 0 Then
      SendKeys "{down}"
   Else
      SendKeys "{up}"
      End If
      Exit Function
      End If


Thomas F., 08.01.2008 02:26: @iF: bei den HIWORD(&UWPARAM)=120 wird ja vor und rück abgefragt. Könnte es sich bei HIWORD(&UWPARAM)=60 um das zweite Scrollrad = links/rechts handeln? Ich habe z.Z. noch keine derartige Maus zum Testen.


David Strutz, 08.01.2008 02:27: Nein bin nicht aufgerieben.
Mit der 120 kann man sehen wie man will - msdn: The high-order word indicates the distance the wheel is rotated, expressed in multiples or divisions of WHEEL_DELTA, which is 120. A positive value indicates that the wheel was rotated forward, away from the user; a negative value indicates that the wheel was rotated backward, toward the user. [...]
Ich habs mir hier also einfach gemacht.


Dies ist die Offlinevariante vom Thread [Abfrage Scrollrad Maus].

Valid CSS!

©2006 XProfan.Com