RichEditControl -Cursor Position

Wohl das A & O in der Windows-Programmierung

Moderatoren: crack, Krüsty, Marwin

RichEditControl -Cursor Position

Beitragvon pp » Samstag 12. August 2006, 21:03

HI
Wer weiß da mal was?

Versuche in einer RichEditBox die momentane Cursorposition zu ermitteln.
Bekomme mit EM_EXGETSEL die Characterposition, mit
EM_EXLINEFROMCHARACTER die Zeilennummer, und mit EM_LINEINDEX,
die Position der akt. Zeile, die ich dann von der Characterposition subtrahieren könnte, um so die Spaltenposition des Cursors zuermitteln.
Leider zählt der Vogel die TABS als eine Position!

Wer kennt einen Weg ?
pp
Newbie
 
Beiträge: 8
Registriert: Montag 29. August 2005, 22:35

CharPosition

Beitragvon Rainer » Montag 14. August 2006, 14:30

Hallo,

ich benutze in einem Editor zum grafischen Überschreiben EM_POSFROMCHAR, wobei bei RichEdit-Version 2
invoke SendMessage, hEdit, EM_POSFROMCHAR, CharPos, 0
und bei Version 3
invoke SendMessage, hEdit, EM_POSFROMCHAR, addr rc, Charpos
gültig ist.

Gruß Rainer
Rainer
Alter Hase
 
Beiträge: 78
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg

Beitragvon pp » Dienstag 15. August 2006, 05:31

Hallo Rainer,
Danke für die Antwort.
EM_POSFROMCHAR gibt mir die point-coordinaten in der client-area zurück, ich brauche aber einfach nur die position, an der die momentane eingabe getätigt wird, um sie in der Statusbar anzuzeigen.
z.B. line 7:col 8.
kann die characterposition der aktuellen Eingabe mit EM_EXGETSEL ermitteln, mit EM_EXLINEFROMCHAR bekomme ich die Zeilennummer.
EM_LINEINDEX gibt mir dann die position des cursors in der zeile.
also wäre dann: EM_LINEINDEX - EM_EXGETSEL = meine position.
so was ähnliches hab ich auch in einigen Delpi Beispielen gefunden.
ABER: enthält die Zeile TABS, dann ist das ergebnis falsch, weil jedes TAB nur als ein CHAR gezählt wird.
Also muß ich jetzt noch die zeile auslesen,tabs zählen, ....
Das muß doch einfacher gehen !?
pp
Newbie
 
Beiträge: 8
Registriert: Montag 29. August 2005, 22:35

Pos in RichEdit

Beitragvon Rainer » Donnerstag 21. September 2006, 09:14

Hallo,
ich ermittle die Zeichenposition genauso. Zu Programmbeginn stelle ich die Zeichenbreite fest. Das funktioniert natürlich nur bei Fonts mit fester Breite. Wenn ich also die grafische Position habe, muss ich nur noch dividieren und habe die Spaltenposition.
Gruß Rainer
Rainer
Alter Hase
 
Beiträge: 78
Registriert: Freitag 21. Juli 2006, 14:39
Wohnort: Senftenberg


Zurück zu Windows-API

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron