Mauszeiger an Ort und Stelle fixieren
-
Ich habe folgendes im Sinn: Wenn ich eine WM_MOUSEMOVE Nachricht erhalte, will ich darauf reagieren, indem ich den Hintergrund scrolle. Das bedeutet aber auch, dass der Mauszeiger an Ort und Stelle bleiben soll.
Das Problem ist, den Mauszeiger versetzt Windows selbst, wenn ich eine WM_MOUSEMOVE erhalte, ist es also bereits zu spät. Leider kann ich die Position auch nicht "korregieren", indem ich eine eigene WM_MOUSEMOVE losschicke, denn damit würde ich eine endlose Rekursion auslösen.
Ich muss Windows also irgendwie mitteilen, dass ich zwar gerne WM_MOUSEMOVE Nachrichten erhalten würde, wenn sich die Maus bewegt, der Zeiger aber an Ort und Stelle bleiben soll. Gibt es da irgendwelche Möglichkeiten?
-
Kannst du den Cursor nicht einfach bei jeder MW_MOUSEMOVE wieder an die ursprüngliche Stelle (z.B. Zentrum deines Fensters, oder eben letzte Koordinaten) setzen? Dann dürfte der Cursor höchstens ein wenig hin und her zittern, aber seine Position im Grunde nicht verlassen. Geht glaube ich mit SetCursorPos.
-
Danke, das ist schonmal nicht schlecht. Leider zappelt der Cursor jetzt aber schon sehr deutlich. Aber ich hab mir jetzt überlegt, mit ShowCursor() den Zeiger einfach zu verstecken und gegen einen Dummy zu ersetzen, der an der entsprechenden Position gezeichnet wird.
-
ClipCursor eventuell...
-
Nur mal am Rande:
1. Für solche Rollfunktionen würde das Mouse-Wheel erfunden.
2. Manche Maustreiber (wie die MS-Treiber) haben hierfür sogar eine eigene Funktion die man durch Drücken des Mauswheels aktivieren kann.
3. Ich fände es als User ziemlich ätzend, wenn meine Maus durch irgendetwas gefangen wird und ich sie nicht mehr bewegen.
-
ClipCursor klang vielversprechend, leider krieg ich dann aber keine Positionsänderungen mehr, weil der Mauszeiger wirklich logisch an den einen Punkt gefesselt ist
Martin Richter:
1. Ich habe kein Mouse-Wheel
2. Abgesehen davon, dass ich ja kein Mouse-Wheel habe, um es zu drücken, fühlt sich dieses Scrolling ganz anders an.
3. Genau darum geht es aber bei der Sache.
-
Mausi schrieb:
1. Ich habe kein Mouse-Wheel
Wow! Das es sowas noch gibt! Du weißt schon, 5€-Mäuse gibt's in jedem Supermarkt.
Mausi schrieb:
2. Abgesehen davon, dass ich ja kein Mouse-Wheel habe, um es zu drücken, fühlt sich dieses Scrolling ganz anders an.
Wie meinst du das? Du wirst dein Scrolling doch auch irgendwie aktivieren, oder? Nimm doch z.B. "linke+rechte Taste gedrückt", dass ist ja auch in anderen Anwendungen der Ersatz für die dritte Maustaste (Mausrad-Klick).
-
Naja, scrolle diese Seite mit dem Mausrad. Danach drückst du die mittlere Maustaste und scrollst damit. Mausrad funkioniert Zeilenweise und erfordert nur eine kurze Rollbewegung. Das andere Scrolling ist eine flüssige Bewegung, außerdem fortlaufend, du musst also nochmal eine Taste drücken um es zu beenden.
-
Ich glaube Du verstehst nicht wie diese Rollfunktion funktioniert.
Ich klicke mit dem Mausrad. Dann erscheint ein zweites Cursor Symbol.
Bewege ich mich über oder unter das Symbol rollt der Text herauf oder herunter.
Entferne ich mich weiter von dem ursprünglichen Symbol wird die Rollgeschwindigkeit größer.Ich genieße diese Methode um längere Texte zu überfliegen und mitzulesen.
-
Wenn man ein Professionelles Prograamm schreiben will, dann muss man es auch für alle benutzbar machen! Manche leute haben ebend keine Maus mit Rad, und darum solte man immer noch mit der Mausbewegung scrollen können!
-
Code-Walker schrieb:
Wenn man ein Professionelles Prograamm schreiben will, dann muss man es auch für alle benutzbar machen! Manche leute haben ebend keine Maus mit Rad, und darum solte man immer noch mit der Mausbewegung scrollen können!
So ist es aber nicht. Mäuse ohne Mausrad werden seit Jahren nicht mehr hergestellt. Und kaum jemand achtet noch darauf, zu solchen Mäusen kompatibel zu sein. Irgendwann früher hatten die Mäuse doch auch nur eine Taste, richtig? Willst du dazu auch kompatibel sein?
Sieh dir die Software doch an. Wieviel professionelle Software wird released, die sich einen feuchten Kehricht um alte Hard- und Software kümmert? Denk einfach mal an Win98-Unterstützung...
-
Code-Walker schrieb:
Wenn man ein Professionelles Prograamm schreiben will, dann muss man es auch für alle benutzbar machen! Manche leute haben ebend keine Maus mit Rad, und darum solte man immer noch mit der Mausbewegung scrollen können!
Yeah Stimmt!
Aber ich vermute die Leute haben auch eine Tastatur und auf der gibt es eine Pgup/PgDn Taste! Und erzähl jetzt nicht, dass es Leute gibt, diekeine PgUp,PgDn taste haben, denn die gibt es schon seit dem ersten IBM AT PC