CEdit hintergrund färben



  • Hallo, klingt blöde aber kann mir mal einer helfen, ich versuche den Hintergrund meines Edit zu verändern aber bekomme es nicht hin.
    Ich habe ne Klasse von CEdit abgeleitet und dann OnCtlColor eingefügt, und darn dann folgendes:

    HBRUSH hbr = CreateSolidBrush(RGB(255,0,0));
    return hbr;
    

    Aber mein Edit bleibt weiss warum?

    Danke für jede antwort



  • schau dir einfach das beispiel an:
    http://msdn2.microsoft.com/en-us/library/0wwk06hc.aspx



  • das funzt nicht, habs in die OnCtlColor meines Edit eingefügt aber nichts alles noch weiss. Geht das überhaupt das ich es in meine Klasse packe, oder muss ich OnCtlColor immer vom Parent aufrufen????

    HBRUSH hbr = CEdit::OnCtlColor(pDC, pWnd, nCtlColor);
    	pDC->SetTextColor(RGB(0, 0, 0));
    	pDC->SetBkMode(TRANSPARENT);
    	hbr = brush;
    	return hbr;
    


  • schaue mal bei www.coding-help.de

    da solltest was finden, was Dir hilft.

    Turmfalke64



  • Also so wie es aussieht wird OnCtlColor nur aufgerufen wenn child windows gemalt werden, das bedeutet das ich es immer im parent aufrufen muss um meine Edit zu ändern.Ich wollte das so machen das bei Focus erhalt sich der Hintergrund ändert, weiß nicht genau wie ich das jetzt drehen soll.



  • Hallo xyz44,

    in Deiner Routine OnCTLColor, fehlt der Entscheidene hinweis, welches
    Element Du ändern willst.

    Beispiel:

    HBRUSH CFarbeDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
    {
        // Hintergrund des Dialoges wird nicht geändert.
        HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
    
        // Brush für den Hintergrund des Eingabefeld
        HBRUSH hBGEdit = CreateSolidBrush(RGB(0, 0, 0));
    
        // Element ermitteln, was geändert werden soll.
        if(pWnd->GetDlgCtrlID() == IDC_EDIT1)
        {
          // Hintergrund für Text transparent setzen.
          pDC->SetBkMode(TRANSPARENT);
    
          // Farbe des Textes ändern.
          pDC->SetTextColor(RGB(255, 0, 0));
    
          // Brush für Hintergrund des Eingabefelds zurückgeben.
          return hBGEdit;
        }
    
        //ungeänderten Brush für den Dialog zurückgeben.
        return hbr;
    }
    

Anmelden zum Antworten