Akt. Textfarbe eine CEdit-Feldes
-
Hallo zusammen !
Ich versuche die aktuelle Farbe eines CEdit-Feldes auszulesen, dies klappt aber leider nicht (siehe Code). Was ist hier falsch ???
Besten Dank für Eure Hilfe
Michael
HBRUSH CSetupDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); COLORREF iFarbeAlt; if (pWnd->GetDlgCtrlID() == IDC_EDIT1) { iFarbeAlt = pDC->GetTextColor(); // <---- hier stürzt er ab -- aber Warum? pDC->SetTextColor(iFarbeNeu); // tu etwas } return hbr; }
[ Dieser Beitrag wurde am 27.11.2002 um 12:06 Uhr von M_kuenzler editiert. ]
[ Dieser Beitrag wurde am 27.11.2002 um 12:07 Uhr von M_kuenzler editiert. ]
-
Wozu überhaupt auslesen?
Entweder ist es die Systemfarbe für aktiven Text oder die Systemfarbe für inaktiven Text!
GetSysColor
-
Verstehe dein Problem auch nicht. Du willst eine neue Farbe setzen und machst dir ein Backup der alten in einer lokalen Variable. Das kanst du dir doch auch schenken... Du musst eine Brush erzeugen und diese zurückgeben wenn du die Hintergrundfarbe ändern willst... Die Textfarbe änderst du mit pDC->SetTextColor, das ist schon richtig...
-
Besten Dank für Eure Beiträge !
@MaSTaH:
Du hast richtig vermutet: ich wollte ein Backup der Farbe machen, um sie wieder im Orginal herzustellen zu können. Welchen Vorschlag hast Du ? Vielleicht auch etwas Code ?Nochmal zurück zu meiner eigentlichen Frage: Warum stürzt der Rechner an der gekennzeichneten Stelle ab ?
[ Dieser Beitrag wurde am 28.11.2002 um 09:11 Uhr von M_kuenzler editiert. ]
-
Hallo,
ich vermute, dass Deine Anweisungen deswegen nicht zum tragen kommen, weil ein Dialog seine Grundeinstellungen von selbst aktualisiert und die von Dir gemachten Änderungen überschreibt.
Ciao