Genau das wollte ich auch grad vorschlagen. In solchen Fällen blende ich meist die Maus aus, und berechne mir "OnMouseMove" die Verschiebung zum vorigen Punkt, und das eigentliche Objekt wird dann nur um ein Bruchteil des Verschiebungsvektors bewegt. Dabei macht es auf jeden Fall Sinn, die Position das zu verschiebenden Teils mit Floats zu speichern und berechnen, und nur zu Anzeigezwecken zu runden.
Da man auch mit ausgeblendetem Cursor noch an den Bildrand stoßen kann (halt nur unsichtbarerweise dann), behelfe ich mir da meist mit einem Timer, der die unsichtbare Maus auf die Bildschirmmitte zurück zieht. 200ms schien dafür ein brauchbarer Wert zu sein, so dass man sich schon sehr anstrengen muss um in der Zeit nen halben Bildschirm zu "überqueren". Und keine Angst: Alle 200ms den Cursor versetzen ist wirklich nichts, was eine CPU groß juckt.
Eleganter wäre es natürlich, wenn man die Maus generell dazu bringen könnte bei Bewegung nur einen Richtungsverktor zu liefern, statt einer Position. Dann fiele das Rücksetzen sowie das eigene Berechnen weg. Jedoch kenne ich bislang keine Möglichkeit dies zu machen. Ich kann mir vorstellen, dass das u.U. mit DirectInput was gibt, aber ich habe auch in Richtung
WinAPI noch nicht recherchiert.
"When one person suffers from a delusion, it is called insanity. When a million people suffer from a delusion, it is called religion." (Richard Dawkins)