Edit-feld mit CString soll runterscrollen

tonimontana

Grünschnabel
Hallo Leute,

ich habe einen kleinen Dialog mit MFC erstellt, und unter anderem ein Edit-feld eingefügt mit dem ich Texte ausgeben will. So habe ich diesem Edit-feld einen CString zugeordnet und gebe dann den CString aus. Wenn ein zusätzlicher text dazu kommt,soll der vorherige text nicht überschrieben werden. Deshalb addiere ich den neuen Text dem alten Text dazu. Nur wenn der gesamte Text, also der Inhalt des CStrings zu lang wird, passt der gesamte Text nicht ins Fenster, so dass er mir nur einen ausschnitt anzeigt. Ich will, dass das Fenster mir stest den Anfang des neu dazu gekommenen Strings anzeigt, aber ich bekomme wie gesagt den Anfang des gesamten Strings.

Kann mir jemand bei diesem Problem helfen?
Danke.
 
hmm

Wenn ein zusätzlicher text dazu kommt,soll der vorherige text nicht überschrieben werden. Deshalb addiere ich den neuen Text dem alten Text dazu.
Also wenn du schon den neuen Text addierst warum addierst du zuvor zu deinem CString nicht einfach ein "\r\n" für einen Zeilenumbruch hinzu?
Dann sollte das Problem behoben sein. Vorausgesetzt du hast in den Eigenschaften deines Editfeldes dieses auf "Multiline" gesetzt!

Sven
 
Ja, in den Eigenschaften des Edit-felds habe ich Multiline erlaubt und auch für einen Zeilenumbruch habe ich gesorgt.

Code:
void CJTAGDlg::DebugEdit(CString newCString) 
 {  	
     UpdateData(TRUE);  	
     m_debug += "\r\n# ";  	
     m_debug += newCString;	  	
    UpdateData(FALSE);  
}


Es ist auch so, dass der VScroll aktiv wird, wenn der String zu groß für das Fenster wird und ich kann auch manuell scrollen und den neu dazu gekommenen teil sehen. Nur ist dieser neu dazu gekommene Stück text unten, denn das Fenster setzt anscheinend den Cursor standardmäßig immer auf den Anfang des gesamtstrings. Ich will aber dass der Cursor (wenn es daran liegen sollte) auf den Anfang des neuen Stücks von Strings liegt.
 
hast du es schon mit der CEdit Methode
Code:
void SetSel( 
int nStartChar, 
int nEndChar, 
BOOL bNoScroll = FALSE );
versucht?
Ich glaube die könnte dir in diesem Fall weiterhelfen.
Wenn du nStartChar & nEndChar auf dem selben wert setzt wo dein neuer Editfeldeintrag beginnt sollte der Currsor doch eigendlich ( hoffe ich) dort blinken!

Ich habe es selber noch nicht probiert, habe aber mit der SetSel schon mal was ähnliches gemacht!
Hoffe es klappt!

Sven
 
Hey Specialguest@home,

hat etwas lange gedauert, weil ich das Problem eine Zeit lang zur Seite gestellt habe. Aber es hat geklappt nach dem ich es mit CEdit versucht habe, danke.
 
Zurück