CEdit im View MFC kein Hintergrund

#2556900
Lesenswert?

Hallo,

ich würde gerne in der MFC ein Objekt der Klasse CEdit in einem VIEW 
verwenden. Ziel ist es jedoch, dass das Objekt nur den Text schreibt und 
den Hintergrund des ihm übergebenen Rechtecks nicht überzeichnet.

Also wenn ich im VIEW einen Strich über das Objekt der Klasse CEdit 
zeichne soll überall dort, wo kein Text ist ein Strich zu sehen sein. 
Wenn das nicht verständlich sein solle kann ich auf wunsch noch ein Bild 
hochladen.

Um dies zu ermöglichen habe ich von der Klasse CEdit eine neue Klasse 
CEdit_Transparent abgeleitet. In diese habe ich wie auf diversen 
Homepages zu lesen ist die Funktion CtlColor() überschrieben jedoch ohne 
Erfolg.
1
HBRUSH CEdit_Transparent::CtlColor(CDC* pDC, UINT /*nCtlColor*/)
2
{
3
   CBrush m_Brush;
4
   m_Brush.CreateStockObject(HOLLOW_BRUSH);
5
   pDC->SetBkMode(TRANSPARENT);
6
   return m_Brush;
7
}

In der VIEW-Klasse wird ein Pointer auf ein Objekt der Klasse 
CEdit_Transparent angelegt. Im Konstruktor wird ein Objekt dynamsich mit 
new erstellt.

Im OnDraw steht momentan folgender Code:
1
pEdit1->DestroyWindow();
2
pEdit1->Create( WS_VISIBLE,CRect(70, 180, 100, 200), this, 14564);
3
pEdit1->SetCueBanner(_T("FU"));

Leider erscheint nun der Hintergrund Schwarz mit grauer Schrift "FU" und 
auch erst, sobald ich die Größe des Fenster verändere. Beim "ersten" 
zeichnen wechselt das Fenster vom CEdit im Sekundentakt zwischen 
Hintergrund des VIEWs und weiß.

Jemand eine Idee wie man das Problem lösen kann?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren