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.