Textfeld -> Schriftstil und Textfarbe verändern!
-
Hallo,
in einer dialogfeldbasierenden Anwendung möchte ich unterschiedliche Textfelder, bezüglich Schriftart (CFont) als auch der Schriftfarbe,bzw. Hintergrundfarbe anpassen.Um die Schriftfarbe und Hintergrundfarbe von STATIC und EDIT-Elementen veränderen zu können, wurde eine separate Klasse CColorEdit, bzw. CColorStatic eingebunden.
Für die Verwendung dieser Klassen wurden Instanzen gegründet, welche dann wiederum ein SubClass an dem entsprechenden Steuerelement durchführen.m_InstanzVonCColorStatic.SubClassDlgItem(ID_STEUERELEMENT, this);
Danach kann über die Methoden der Klasse CColorStatic die Text- und Hintergrundfarbe des Steuerelementes geändert werden.
InstanzVonCColorStatic.SetTextColor(FARBE); InstanzVonCColorStatic.SetBkColor(FARBE);
So weit so gut, das funktioniert auch noch alles. :p
Jetzt soll noch zusätzlich die Schriftgröße, Dicke, etc. verändert werden.
Hierfür habe ich mir eine Instanz von CFont erstellt und mit CreateFont die Einstellungen vorgenommen.
Dann möchte ich dem FARBIGEN Steuerelemnt diese Änderungen ebenso zuweisen und hier tritt dann der Fehler auf. WARUM?
Es funktioniert weder mit der "SubClass"-Variablen noch mit der ursprünglichen Control-Variablen.Irgendwie blicke ich da gerade nicht mehr durch.
BITTE helft mir.DANKE.
Gruss
S.
-
Das CFont muss ein Member deines Dialoges sein.
Dann sollte das klappen.
-
Hi,
Danke für den Tipp. Hat leider nur NICHT funktioniert
Die CFont-Variable ist ein Member meines Dialoges. Daran scheint es nicht zu liegen.Sobald ich ein Steuerelement mit SubClassDlgItem() bearbeitet habe, kann ich meine Fonts nicht setzen.
Bei Steuerelementen, welche NICHT mit SubClassDlgItem() bearbeitet wurden, gibt es keine Probleme. Das funktioniert dann perfekt.
Noch ne Idee?
DANKE.
Gruss
S.
-
Nein, da habe ich keine Idee.
Aber da (http://www.codeproject.com/miscctrl/hmxcontrols.asp) auf dem Bild oben in der Mitte ist eine gefärbe Combobox und ein Edit mit einer anderen Schriftart.
Vielleicht findest du da ja eine Lösung.