Mausgeschwindigkeit



  • Hallo, ich erstelle ein Fenster in dieses Zeichne ich mit DirectDraw. Und frage auch die Maus mit DirectX ab.

    Ich habe jetzt das Problem das die Geschwindigkeit der Maus von DX und der von Windows nicht stimmen. Also wenn ich im DX Fenster bin und mit der Maus rumfahre passiert es das im Hintergrund der Mauszeiger von Windows erscheint.

    Also müsste ich die Geschwindigkeit der Maus abfragen und es mit DX syncronisieren. Oder geht das auch anders?



  • Ich frage die Mausposition jetzt mit GetCursorPos(&mPos) ab und zeichne den Zeiger an diese Position.

    Doch der Zeiger wird ca. 50*50 Pixel von der Sollposition angezeigt.

    Woran kann das liegen das der Cursor so verschoben angezeigt wird?



  • Ach jetzt habe ich das Problem erkannt. Die Differenz ist genau die welches das Fenster von der linken Ecke vom Desktop entfernt ist. Muss ich die Position vom Fenster dazu rechnen? Die Funktion sollte doch die Position des Coursers im Fenster liefern oder nicht?



  • Du kannst es einfach mit ScreenToClient umwandeln.



  • Ja so geht es. Wenn auch nicht 100%

    Ganz oben stimmt die Position des Mauszeigers mit meinem Bitmap überein. Fahre ich bis ans Ende des Fensters gibt es wieder eine Verschiebung. Um genau der Breite der Leiste des Fenster. Ich muss sagen das ich den sichtbaren Bereich des Fensters, also dort wo er reinzeichnet, mit AdjustWindowRect() berechne.



  • Haste auch beachtet, dass ein Cursor einen HotSpot hat ?
    (Blendest du den Windows-Cursor eigentlich nicht aus ?)


Anmelden zum Antworten