Rahmen und Hintergrundfarbe eines EDITs zeichnen
-
Hallo!
Ach, das ist zum Mäusemelken. Ich habe es jetzt mit Ach und Krach geschafft den Hintergrund eines Textfeldes (EDIT) zu ändern. Aber der Rahmen will absolut nicht.
Mit folgendem Code ändere ich die Hintergrundfarbe:HBRUSH CMyDialogDlg::OnCtlColor(CDC *pDC, CWnd *pWnd, UINT nCtlColor) { HBRUSH hbr = CMyDialogDlg::OnCtlColor(pDC, pWnd, nCtlColor); switch(pWnd->GetDlgCtrlID()) { case IDC_EDIT1: { // Brush löschen m_BrushBack.DeleteObject(); // Membervariable der Dialogklasse // Hintergrundfarbe setzen m_BrushBack.CreateSolidBrush(RGB(240, 240, 240)); pDC->SetBkMode(TRANSPARENT); hbr = static_cast<HBRUSH>(m_DB_BrushBack); break; } } return hbr; }
Ich würde jetzt gerne wissen wie ich noch einen Rahmen in belibieger Farbe um das Textfeld zeichnen kann.
-
Hallo, die Funktion heißt Rectangle, probiers mal mit der variablen CDC.
-
ungewöhnlich schrieb:
Hallo, die Funktion heißt Rectangle, probiers mal mit der variablen CDC.
mit anderen Worten:
eigene Klasse von CEdit ableiten und dann selbst einen Rahmen in der gewünschten Farbe zeichnen... eine andere Lösung wird es dafür nicht geben !!!
ciao veganza
-
Danke. Jetzt klappts. Allerdings benutze ich CDC::FrameRect(), damit NUR ein Rahmen gezeichnet wird.