CEdit Control mit farbigem Text. Wie?

Quick_Mik

Mitglied
Hallo Leute.

Ich müsste für eine Applikation ein einem Editfeld den Text farbig darstellen.
So weit so gut. Hab auch schon das gefunden. Allerdings liegt diesem eine Keyword Liste zugrunde.
Ich müsste je nach Position des Wortes (anhand der Leerzeichen zwischen den Worten gezählt) das Wort einfärben.
Ich dachte an eine Lösung ähnlich der im Link gezeigten, aber ich raff das irgendwie nicht.
Auch wenn ich die Dateien wie im Link beschrieben einbinde, bekomme ich Compiler Fehler (unaufgelöste externe Symbole)...

Hat jemad ne Idee, wie man das einfach realisieren kann?

Würde mich auch über Code Schnipsel und / oder Links zu solchen freuen.

Danke im Voraus.

Gruß

M.
 
Ich würde für dafür die Klasse "CRichEditCtrl" verwenden. Ich habe mir den Code des von dir genannten Beispiels jetzt nicht angeschaut, aber nach der Beschreibung zu urteilen scheint es mir so eine Art "Reinventing of the wheel", nämlich der der Basisfunktionen des CRichEditCtrl + dem aufgesetzten (und in deinem Fall nicht benötigten) Syntaxhighling zu sein.
 
Also ich favorisiere die CRichEditCtrl Variante, da ich damit einzelne Worte färben kann.

Allerdings raffe ich den Einsatz der CHARFORMAT Struktur nicht :(

Wenn dazu eventuell mal jemand nen Happen Code als Beispiel hätte, wäre mir schon sehr geholfen...

Gruß

M.
 
Um bestimmte Bereiche (Wörter) einzufärben, würde ich folgendermaßen vorgehen:
Code:
// aktuelle Auswahl sichern
CHARRANGE cr;
GetSel(cr);         

// gewünschen Bereich auswählen ("nStart" und "nEnd" anpassen)
SetSel(nStart, nEnd);      
                        
// Aktuelle Einstellungen holen                        
CHARFORMAT cf;
GetSelectionCharFormat(cf);    

// Farbe ändern (im Beispiel zu rot)
cf.crTextColor = RGB(255,0,0); 

// Einstellung setzen
SetSelectionCharFormat(cf);

//Auswahl wiederherstellen
SetSel(cr);
 
Zuletzt bearbeitet:
Danke, das sollte ich verstehen...

Allerdings hab ich ein neues Problem.

Sobald ich meinem Dialog ein RichEditCtrl hinzufüge schmiert mir das Prog beim Start ab.

Debug assertion failure und ich kann nicht finden wo.

Nen Breakpoint zu Beginn der OnInitDialog wird schon nicht mehr erreicht...

Weis jemand Rat?

Gruß

M.
 
Ich würde in der Aufrufliste nach der Funktion suchen, die vor dem Crash aufgerufen wurde. Ansonsten setze ich bei solchen Problemen einen Breakpoint so früh wie möglich und hangele mich dann Stück für Stück durch, bis es crashed.

Mfg

langer
 
Zurück