Änderung der Cursorposition im CEdit- Feld detektieren (Message)
-
Der Eventhandler bietet bei CEdit Feldern leider nicht die Möglichkeit, Cursorpositionsveränderungen durch z.B. die Richtungstasten oder per Mausklick abzufangen.
Gibt es eine Möglichkeit, diese Message abzufangen (Diese würde z.B. ON_EN_CURSORMOVE() heissen) ?
Derzeit starte ich einen Timer, mit dem ich die Veränderung des Cursors über GetSel() überwache. Eine nicht sehr elegante Lösung.
Weiss jemand eine bessere?
Ich habe durch das "googlen" von passenden Ausdrücken auch im Englischen nichts gefunden...
-
Hallo,
Gibt es eine Möglichkeit, diese Message abzufangen (Diese würde z.B. ON_EN_CURSORMOVE() heissen) ?
Ja, z.B. diese hier:
http://support.microsoft.com/kb/104637/en-us.
Dann dort noch die WM_LBUTTONUP-Nachricht behandeln, mit GetSel die Position feststellen, wenn geändert, benutzerdefinierte Nachricht (z.B CARETMOVE) an das Elternfenster (den Dialog) schicken (auch für die Nutzung der Pfeiltasten), und dort mit ON_MESSAGE behandeln.
MfG,
Probe-Nutzer
-
Danke für den Tipp,
ist zwar recht Umfangreich (Man muss ON_WM_LBUTTONDOWN() und ON_WM_KEYDOWN() mappen), aber funktioniert zuverlässig!