CEdit einzelne Zeichen einfärben

Guten Morgen,

Derzeit bin ich dabei eine eine Autovervollständigung für einfache Textboxen zu Programmieren, hierzu habe ich von CEdit eine eigene Klasse abgeleitet. Was die Funktionalität selbst angeht komm ich gut voran, jetzt müssen nur noch kleine Schönheitsfehler behoben werden.

der Tatsächliche Text der vom User eingegeben wird, soll in normaler schwarzer Schriftfarbe dargestellt werden und wenn ein Wort gefunden wird das passen würde dann werden die restlichen noch fehlenden Buchstaben in grauer Farbe ergänst.

Ich habe leider nichts gefunden um in einem CEdit Control für einzelne Zeichen die Schriftfarbe zu ändern.

Hat jemand evtl. einen Ansatz für mich

Gruß

Stef

hmm, vielleicht doch ein ritchtext nehmen
http://www.codeproject.com/KB/edit/crysedit.aspx?df=…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi,

Guten Morgen,

[…]

der Tatsächliche Text der vom User eingegeben wird, soll in
normaler schwarzer Schriftfarbe dargestellt werden und wenn
ein Wort gefunden wird das passen würde dann werden die
restlichen noch fehlenden Buchstaben in grauer Farbe ergänst.

Ich habe leider nichts gefunden um in einem CEdit Control für
einzelne Zeichen die Schriftfarbe zu ändern.

Hat jemand evtl. einen Ansatz für mich

Gruß

Stef

hmm, vielleicht doch ein ritchtext nehmen
http://www.codeproject.com/KB/edit/crysedit.aspx?df=…

Den gleichen Artikel hab ich unter
http://www.codeguru.com/cpp/controls/
gefunden.

Mit der MFC-eigenen Klasse wirst du es wohl nicht hinbekommen. Es bleibt dann nur, eine eigene Klasse abzuleiten und die Zeichenroutine umzuschreiben.

Vielleicht hilft dir dieser Artikel weiter:
http://www.codeguru.com/Cpp/controls/controls/articl…
Ich hab mir den Quelltext nicht angesehen, aber es müsste etwas passendes dabei sein, was du als Basis für deine eigene Klasse benutzen kannst.
Du müsstest zusätzlich zum reinen Text ja auch Meta-Informationen darüber haben, wie die jeweiligen Zeichen dargestellt werden sollen. Hast du dir darüber schon Gedanken gemacht?

Gruß Yelmalio

Guten Morgen,

hmm, vielleicht doch ein ritchtext nehmen

Das muss ich leider ausschließen, da ich an vielen Stellen in meinem Programm CEdit Controlls benutze und diese alle um die neue Funktionalität erweitert werden sollen. Der Lößungsweg der abgeleiteten Klasse würde mir letztendlich weniger Arbeit/Probleme bereiten als die Steuerelemente alle umzustellen.

Mit der MFC-eigenen Klasse wirst du es wohl nicht hinbekommen.
Es bleibt dann nur, eine eigene Klasse abzuleiten und die
Zeichenroutine umzuschreiben.
[…]
Du müsstest zusätzlich zum reinen Text ja auch
Meta-Informationen darüber haben, wie die jeweiligen Zeichen
dargestellt werden sollen.

Ich habe die OnPaint Funktion der CEdit Klasse überschrieben.
Mithilfe eines Paintstructs zeichne ich den getippten Text jetzt händisch auf das Steuerelement.

Vielleicht hilft dir dieser Artikel weiter:
http://www.codeguru.com/Cpp/controls/controls/articl…

In der Beschreibung steht leider, folgender Satz:

[…] there is no painting of any kind in these classes.

Bringt mich also nicht wirklich weiter.

So ich habe das Problem bisher nur Ansatzweise gelößt hatte nicht wirklich die Zeit dazu aber alle die es interessiert sollten sich mal in den MFC Kurs von Wolfgang Schröder einlesen!
Ich kenne keine empfelenswertere Seite über die MFC als www.cpp-tutor.de :smile:
Speziall auf das Thema bezogen Kapitel 5 „Das GDI“
http://www.cpp-tutor.de/mfc/toc.htm

Gruß

Jonas