Cursor Position



  • Moin,

    Wie ermittelt man die aktuelle Cursor Position in einem Fenster, in dem gescollt wurde?

    Ich habe es mit hiermit probiert, aber es funktioniert nicht. Der damit ermittelte Punkt weicht um den horizontal und vertikal gescrollten Abstand ab.

    GetCursorPos(&punkt);
    ::ScreenToClient(this->GetSafeHwnd(),&punkt); 
    punkt = punkt + GetScrollPosition();
    

    Gruß, Christian.



  • GetCursorPos liefert die Position in Screen-Koordinaten (relativ zur oberen linken Bildschirmecke), ScreenToClient() rechnet die Position auf Client-Koordinaten um (relativ zur Fensterecke).
    Und wenn du den Punkt anschließend um deine Scroll-Position verschiebst, ist es klar, daß er hinterher um diesen Wert abweicht.



  • Vielen Dank, deine Anwort hat mir indirekt geholfen. Die Lösung war jedoch nicht, die ScrollPosition einfach nicht zu addieren, sondern die skalierte ScrollPosition der Skalierung bzw. ZoomFaktor entsprechend oft zu addieren... Naja jetzt funktioniert es.


Anmelden zum Antworten