Edit Scroll
-
Hi!
WIe kann ich realisieren, dass bei einem nur-lesen multiline edit-control der text automatisch scrollt, wenn er über den sichtbaren bereich hinauskommt?
Ciao,
Flo
-
=> WS_VSCROLL
und dann wirst du wahrscheinlich subclassen müssen.
cya
-
Und was versteht man unter Subclassen?
-
Probier's mal nur mit WS_VSCROLL, vielleicht geht's so auch schon (hab das noch nie gemacht ;)). Wenn es nicht geht, dann schaust du auf www.winapi.net
cya
-
Wart mal... ich hab das "nur-lesen" ganz überlesen ;). Auf jeden Fall musst du Scrollbars aktivieren (WS_VSCROLL). Probier's dann einfach mal aus, ob der dann automatisch scrollt, wenn nicht, musst du manuell scrollen (ich glaub da muss man dann ne WM_VSCROLL (oder so)-Message an das Control senden).
cya
-
Weißt du was? Ich hab's rausgefunden:
Also, du brauchst ein Edit-Control (z.B. hEdit) mit dem WS_VSCROLL-Style.
Dann postest du nach jedem mal Text schreiben einfach WM_VSCROLL mit SB_BOTTOM, wie hier:SendMessage(hEdit, WM_SETTEXT, 0, (LPARAM) lpBuf); SendMessage(hEdit, WM_VSCROLL, SB_BOTTOM, 0);
Dann scrollt das Edit-Feld immer nach ganz unten :).
cya
-
Jo, Danke!!
Ich hatte sowas schonmal mit SB_LINEDOWN aber das hatte auch nur halbwegs geklappt...
-
Geht das nicht auch mit ScrollWindowEx?
-
Es gibt eigentlich zu jeder Message ne Funktion, die das gleiche bewirkt:
WM_SETTEXT => SetWindowText
WM_GETTEXT => GetWindowText
WM_ENABLE => EnableWindow
...
...
...cya