Probleme mit RTF String in CRichedtictrl

meiomei

Grünschnabel
Hallo,

Ich gebe in meinem Programm einen String in einem CRicheditctrl aus. (CRicheditctrl::SetWindowText (..)). Der String ist ca. 40 KB groß. Die normale Ausgabe im Richeditctrl funktioniert einwandfrei, formatiere ich den String jedoch mit RTF wird nur noch ein bestimmter Teil vom Anfang an ausgegeben. Entferne ich den RTF-Header aus dem String wird er wieder komplett ausgegeben.
Hat jemand eine Ahnung?

Ich habe mal den ausgebenen String in einen Editor kopiert und gespeichert. Der String hat 32KB. Kann es vielleicht sein, dass das Richeditctrl eine begrenzte Größe hat
 
Zuletzt bearbeitet:
Alle Edit Controls haben per Default ein 32kB-Limit. Mit EM_SETLIMITTEXT kannst du das Limit hochsetzen.

Da da je nach Windows-Version unterschiedliche Möglichkeiten bietet hier einfach die MSDN zu Rate ziehen.
 
Ich dachte das Limit gilt für die Eingabe?! Ich habe ja einen String den ich in das richedit control lade.

Ich habe in OnInitDialog() die Funktion SendMessage() aufgerufen:

::SendMessage ((HWND)IDC_RICHEDIT, EM_LIMITTEXT, -1, 0);

Es werden jedoch immer nur die begrenzte Anzahl Zeichen ausgegeben.
 
Zuletzt bearbeitet:
Ich habe die Lösung gefunden!
Ich setze jetzt mit der Methode CRicheditctrl::LimiText (long nChar) die max. Anzahl zeichen. Nun funktioniert die Ausgabe!
 
meiomei hat gesagt.:
Ich dachte das Limit gilt für die Eingabe?! Ich habe ja einen String den ich in das richedit control lade.

Ich habe in OnInitDialog() die Funktion SendMessage() aufgerufen:

::SendMessage ((HWND)IDC_RICHEDIT, EM_LIMITTEXT, -1, 0);

Es werden jedoch immer nur die begrenzte Anzahl Zeichen ausgegeben.

Dein Fehler ist hier, dass die ID NICHT dem HWND entspricht. Du kannst dir über GetDlgItem das HWND holen, aber nicht einfach die ID auf HWND casten.

Im Grunde macht das die CRichEditCtrl das intern, es klappt ja auch so :)
 
Zurück