Mausgeschwindigkeit ändern im Programm?



  • Hallo,

    gibt es eine möglichkeit die mausgeschwindigkeit in einem programm
    zu verändern???

    Falls nicht hätte man ja die möglichkeit im onmousemove-event

    CDialog::OnMouseMove(UINT nFlags, CPoint point);
    

    den parameter point zu verändern, aber kann man den mauszeiger auch
    auf die geänderte position bewegen??

    Ich nutz VC++ 2003 std. , und möchte ein kleines malprogramm erstellen
    wo die malfläche nicht 'gezoomt' wird sondern ein kleines extra-fenster
    vorhanden ist, quasi als lupe, mit verschiedenen zoomstufen. nun sollte
    die mausgeschwindigkeit aber abhängig von der zoomstufe sein.

    thx


  • Mod

    Die Mausgeschwindigkeit lässt sich nur Systemweit festlegen und eignet sich dafür also nicht. Siehe SystemParametersInfo, SPI_SETMOUSESPEED
    http://msdn2.microsoft.com/en-us/library/ms724947.aspx

    Du kannst Jederzeit in Deinem Program SetCursorPos die Cursorposition verändern!



  • systemweite änderung kann ich nicht machen,
    also versuch ichs mittels setcursorpos().

    Danke...


  • Mod

    Versuch einfach mal WM_MOUSEMOVE abzufangen. Dann weißt Du wie weit der User die Mausbewegung machen wollte, anschließend setzt Du einfach mit SetCursorPos den Wert dahin (verzögert an die Stelle, an die Du es möchtest.



  • Martin Richter schrieb:

    Versuch einfach mal WM_MOUSEMOVE abzufangen. Dann weißt Du wie weit der User die Mausbewegung machen wollte, anschließend setzt Du einfach mit SetCursorPos den Wert dahin (verzögert an die Stelle, an die Du es möchtest.

    Und bekommst daraufhin wieder ein WM_MOUSEMOVE? Oder irre ich mich da jetzt?


  • Mod

    Das ist korrekt. Allerdings kan man das ja leicht blockieren, indem man ein Flag setzt.


Anmelden zum Antworten