Edit neue Zeile einfügen?
-
Hi, wie kann ich per SendMessage Funktion eine neue Zeile in eine Textbox (multiline) einfügen? Wenn ich es escape (\n) oder den Tastencode von der Entertaste einfüge, kommt nur ein |. Ich möchte aber dass eine neue Zeile begonne nwird
-
1. Edit Control mus Multiline sein.
2. Ganz einfach mit EM_SETSEL an das Ende des Textes navigieren
3. EM_REPLACESEL ausführen mit "\r\nZeile2"Wichtig! Multiline Editocntrols nutzen \r\n als Zeilenschaltung.
-
Danke schonmal für die Hilfe. Ich habe jetzt nur ein Problem mit dem EM_SETSEL. Es gibt da ja mehrere möglichkeiten um ans Ende zu navigieren. Welches ist die bessere?
Die eine die mir einfällt, ist GetWindowText oder WM_GETTEXT abzurufen und die Länge des Strings abzufragen
Die zweite die mir einfällt ist WM_GETTEXTLENGTH. Welche sollte ich benutzen - oder gibt es noch eine bessere und einfachere?mfg TazZz
-
WM_GETTEXTLENGTH ist mit Sicherheit die effektivste!
-
OK danke für deine Hilfe

-
Kann mir jemand zeigen wie das im Code aussieht?
GetDlgItem(IDC_EDIT_DISPLAY)->SetWindowText("Hallo"); GetDlgItem(IDC_EDIT_DISPLAY)->SendMessage(EM_SETSEL);???
-
Brooks schrieb:
Kann mir jemand zeigen wie das im Code aussieht?
GetDlgItem(IDC_EDIT_DISPLAY)->SetWindowText("Hallo"); GetDlgItem(IDC_EDIT_DISPLAY)->SendMessage(EM_SETSEL);???
Ist das nicht MFC?
const int start = 0; const int end = 100; SendMessage(texthWnd, EM_SETSEL, start, end);http://msdn.microsoft.com/en-us/library/bb761661(VS.85).aspx