Benutzer mit den meisten Antworten
Hintergrundfarbe eines CView Elements

Frage
-
Hallo Forum
Ich verwende eine MFC-SDI Anwendung mit CView Fenster. Wie kann ich dem Fenster beibringen, dass es beim Neuzeichnen (Invalidate) nicht Weiß, sondern eine andere Farbe als Hintergrund zeigt?
Ich möchte allerdings nicht einfach in der "OnDraw" Funktion den Hintergrund mit "FillSolidRect" auf eine andere Farbe übermalen, weil die ganze Fläche dann nämlich zweimal gezeichnet wird (einmal weiß und einmal anders) und das bei dem extrem schwachbrüstigen System, das ich als Zielsystem verwende zu schlimmem Flackern führen würde...
Grüße
FireHeart
Antworten
-
WM_ERASEKGND überschreiben.
Oder dort einfach nur TRUE zurückgeben und alles in OnDraw machen. Das würde auch die Verwendung einen Speicher-DCs vorbereiten.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
- Als Antwort vorgeschlagen Martin RichterModerator Mittwoch, 18. September 2013 09:57
- Als Antwort markiert Fire-Heart Mittwoch, 18. September 2013 10:19
-
Hallo Martin
Danke für die Info. War eigentlich fast zu einfach und ich hab's mittlerweile an anderer Stelle auch gefunden.
http://forums.codeguru.com/showthread.php?72585-Background-color-of-CView-window
BOOL CxxxView::OnEraseBkgnd(CDC* pDC) { RECT CR; GetClientRect(&CR); pDC->FillSolidRect(CR.left,CR.top,CR.right - CR.left,CR.bottom - CR.top,RGB(250,245,240)); return(1); //return CView::OnEraseBkgnd(pDC); }
Grüße
FireHeart
- Als Antwort markiert Fire-Heart Mittwoch, 18. September 2013 10:19
Alle Antworten
-
WM_ERASEKGND überschreiben.
Oder dort einfach nur TRUE zurückgeben und alles in OnDraw machen. Das würde auch die Verwendung einen Speicher-DCs vorbereiten.
Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
- Als Antwort vorgeschlagen Martin RichterModerator Mittwoch, 18. September 2013 09:57
- Als Antwort markiert Fire-Heart Mittwoch, 18. September 2013 10:19
-
Hallo Martin
Danke für die Info. War eigentlich fast zu einfach und ich hab's mittlerweile an anderer Stelle auch gefunden.
http://forums.codeguru.com/showthread.php?72585-Background-color-of-CView-window
BOOL CxxxView::OnEraseBkgnd(CDC* pDC) { RECT CR; GetClientRect(&CR); pDC->FillSolidRect(CR.left,CR.top,CR.right - CR.left,CR.bottom - CR.top,RGB(250,245,240)); return(1); //return CView::OnEraseBkgnd(pDC); }
Grüße
FireHeart
- Als Antwort markiert Fire-Heart Mittwoch, 18. September 2013 10:19