MDI: Hintergrundfarbe einer ChildView
-
Hi,
kann ich (und wenn ja, wie..) die Hintergrundfarbe der Child-Fenster einer MDI-Anwendung ändern? Ich hätte gerne ein Blau (#000066)
PS.: Habe dazu leider nichts in der FAQ gefunden.
Vielen Dank
-
[gelöscht]
-
hi valen16,
das ist super! *freu*
.. und poste den source einfach hier, ich denke es gibt vielleicht noch andere die das interessiert..vielen dank, bis dann
christian
-
[gelöscht]
-
Hallo valen16,
leider funktioniert Deine Lösung nicht in meinem Projekt.
Ich konnte allerdings auch keinen Fehler finden..
Schade.Gruß,
Christian
-
Hallo,
ich habe eine Lösung gefunden. Für den Fall das es jemand anderen auch noch interessiert ..
Um eine ChildView Farbig darzustellen, muss folgendes erledigt werden.
(Ich gehe von einer MDI-Anwendung mit abgeleiteter CEditView aus..)Im Klassenassistenten die Windowsnachricht "=WM_CTLCOLOR" hinzufühgen (NICHT "WM_CTLCOLOR").
In der dazugehörigen Methode nun folgenden Code schreibenHBRUSH CMdiView::CtlColor(CDC* pDC, UINT nCtlColor) { pDC->SetBkColor(RGB(58,110,165)); pDC->SetTextColor(RGB(0,0,0)); HBRUSH hbr = CreateSolidBrush(RGB(0,0,255)); return hbr; //return NULL; }
Nun habt ihr ein schönes Blau als Hintergrund und Schwarz für die Schrift.
MfG,
ChristianPs.: Wäre das nicht etwas für die FAQ?
-
Es geht auch anders
so sB:BOOL CMyView::OnEraseBkgnd(CDC* pDC) //mit ClassWizard -> wählen WM_ERASEBKGND { CMyDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); CRect rcClient; GetClientRect(&rcClient); CRect rc = rcClient; // get image rectangle CRect rcImage; rc = rcImage; CPoint pt = pDC->GetViewportOrg(); CSize sz = GetTotalSize(); // create clipping region CRgn clipRgn; clipRgn.CreateRectRgnIndirect(&rcClient); pDC->SelectClipRgn(&clipRgn); pDC->ExcludeClipRect(&rcImage); CBrush brush(RGB(100,100,100)); //grau pDC->FillRect(&rcClient, &brush); pDC->SelectClipRgn(NULL); return TRUE; Invalidate(); }
Das wäre auch was für FAQ