CRichEditCtrl und scrolling

NinjaOne

Erfahrenes Mitglied
Hallo,
ich habe ein CRichEditCtrl-Objekt und gebe in ihm Informationen zum Programm aus.
Das ganze klappt so lange wie ich das ende des Ausgabefeldes nicht erreiche.
Wenn ich nach erreichen des Ausgabefeldes weiter Ausgabe im CRichEditCtrl-Objekt mache seh ich diese Zeilen erst, wenn ich nach unten scrolle. Kann mir jemand sagen wie ich das Scrollen automatisieren kann ?

Freue mich schon auf eure Antworten.
Bye.
 
mit
Code:
LineScroll( int nLines, int nChars = 0 );
kannst Du nLines Zeilen scrollen. Wenn Du also eine Zeile eingetragen hast, dann scrollst Du damit eine Zeile weiter. Wenn Du für nLines 0x8FFFFFFF nimmst (= MAXINT), dann scrollt er immer bis zum Schluß, da er nicht über das Ende des Textes hinausscrollt.
 
Danke, für die schnelle Antwort.
Hab das mit LineScroll getestet, doch leider Scrollt er nicht so wie ich es gerne hätte.
Er Scrollt nicht ein Feld oder auch zwei weiter sondern scrollt eine ganze Fenstergrösse weiter.

Gibts da noch was anderes ?
 
Wenn ich in dem RichEdit-Eingabefeld bin und die Taste Bildlauf nach unten drücke geht er ans Ende des Textes. Kann ich diesen Befehl nicht auch anders senden ?

Würd mich freuen, wenn mir da jemand helfen kann, soweit bin ich noch nicht !
 
Wenn die aktuelle Zeile plus dem bei "nLines" eingetragen Wert größer als die Anzahl der Zeilen ist, wird so gescrollt, das nur noch die letzte Zeile als einzige Zeile oben angzeigt wird. Dieses Verhalten stört dich vermutlich.

Du müsstest wahrscheinlich nur genau bis zur letzten Zeile scrollen. Das müsste mit folgendem Code funktionieren (allerdings nicht getestet):

Code:
m_REdit.SetSel(0,0);
m_REdit.LineScroll(m_REdit.GetLineCount());
 
Hey MCoder,
hab es mal getestet.
Bei den ersten 3 eingaben klappt es aber dann scrollt er mit jeder weiteren Eingabe immer weiter als er muss.
Trotzdem Danke wir werden das Ding schon knacken! (LOL)
 
Hey MCoder,
es klappt doch!
Ich musste nur die Art der Eintragung ändern.
Um Eintragungen machen zu können hab ich im Klassen-Assistent eine CString von CRichEditCtrl abgeleitet. An diesem String hab ich immer den neuen Text angehangen
und ihn im anschluss mit UpdateData übernommen.
Dann habe ich versucht eure Programmteile anzufügen um das Scrolling zu realisieren.
Das ging leider nicht.

MCoder hat mir noch zu einem anderen Thema geantwortet und daraus konnte ich entnehmen das ich Einträge auch mit ReplaceSel einfügen kann.
Und siehe da es klappt. Dank euch beiden.

Hier noch mal für alle:

Code:
CString strAdd = _T(" ... ");   // enthält den neuen Text

m_REdit.SetSel(m_REdit.GetTextLength(), (-1));   // Selection ans Textende
m_REdit.ReplaceSel(strAdd);  // Anfügen des neuen Textes
m_REdit.LineScroll(1);  // Scroll eine Zeile hoch

Noch mal vielen Dank und Bye.
 
Zurück