Dialog: Probleme mit Farben
-
Oh, das hätte ich vielleicht erwähnen sollen

ConsoleData_Control ist eine CEdit Control Member Variable für das Konsolen-Edit Feld.
-
na dann mach doch ne eigene CEdit klasse und schmeiß alle ausgaben weg (also read only) und dann kann man über OnCtlColor im der Edit-Klasse das bunt machen wie man will. nur mal so als einfache Idee. nebeneffekte weiss ich net was da noch kommt, da ich das noch net versucht habe.
-
-
In der MSDN kann ich weder bei CEdit noch bei CWnd etwas von SetTextColor / SetBackColor finde, wo sind die denn her?
Naja, jedenfalls: OnCtlColorXxxx, wie schon erwähnt.
-
Evtl. COleControl!
-
Vielen dank, ich werde mir das alles mal anschauen.
-
Hallo,
also leider hilft mir das alles nicht weiter

Ich verstehe den Sinn dieses Reflects nicht. Und wie erstelle ich denn eine neue CEdit Klasse und schmeiße die Ausgaben weg?
Edit: OK, das mit den Reflects hab ich verstanden udn implementiert - aber es funktioniert nicht. Damit wird mein Edit Feld garnicht mehr gefärbt.
-
Verwendest Du denn auch dieses CEdit Control in dem Dialog?
-
Ich habe jetzt die Lösung:
HBRUSH CMouseAppDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { // Konsolenfarbe soll sich nicht ändern, // da die Konsole eine andere Farbe als der Rest hat if( pWnd->GetDlgCtrlID() == IDC_E_CONSOLE ) return CDialog::OnCtlColor(pDC, pWnd, nCtlColor); else { // Hintergrund einfärben, falls jemand andere Windows-Farben verwendet // (sonst fallen die nicht-transparenten Bildhintergründe auf) HBRUSH hbr = CreateSolidBrush(RGB(236, 233, 216)); // Texthintergrund transparent machen pDC->SetBkMode(TRANSPARENT); return hbr; } }
-
Schnapphase schrieb:
Ich habe jetzt die Lösung:
{ // Hintergrund einfärben, falls jemand andere Windows-Farben verwendet // (sonst fallen die nicht-transparenten Bildhintergründe auf) HBRUSH hbr = CreateSolidBrush(RGB(236, 233, 216));Nein hast Du nicht. Du erzeugst GDI-Leaks ohne Ende!