Environment: SDI MFC projects
SDI projects created using MFC come with a default white background color. This sample code implements any color the programmer desires after the creation of an SDI framework using the MFC wizard for project creation.
- Ctrl+W pops up the MFC classwizard property sheet.
- Select the Message Maps tab.
- From the drop-down list box under the Class Name static control, select the CxxxView option (xxx = Your project’s name; for example, CNnoyeView).
- Make sure CxxxView is also selected in the Object ID’s list box.
- Select the WM_ERASEBKGND option in the Messages list box.
- Click the Add Function button. The Class Wizard adds the “OnEraseBkgnd” member function.
- Click the Edit Code button. Add the following code before the return CView::OnEraseBkgnd(pDC) statement.
CBrush brNew(RGB(0,0,255)); //Creates a blue brush
CBrush* pOldBrush = (CBrush*)pDC->SelectObject(&brNew);CRect rc;
pDC->GetClipBox(rc); // Gets the co-ordinates of the client
// area to repaint.
pDC->PatBlt(0,0,rc.Width(),rc.Height(),PATCOPY);
// Repaints client area with current brush.
pDC->SelectObject(pOldBrush);return TRUE; // Prevents the execution of return
// CView::OnEraseBkgnd(pDC) statement
You can choose any desired color background by adjusting the values of Red, Green, and Blue in RGB(0,0,255); for example, RGB(0,0,0)=Black. You can also use bitmaps instead of brushes as the background color with simple adjustments. Guess that’s it for now, folks! Have to get back to work.