随便新建一个MFC项目,我选了MDI,SDI差不多吧。
先把视图背景改成灰色,在BOOL CMFCMDIView::PreCreateWindow(CREATESTRUCT& cs)中:
BOOL CMFCMDIView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: 在此处通过修改
// CREATESTRUCT cs 来修改窗口类或样式
cs.lpszClass = AfxRegisterWndClass(CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS, LoadCursor(NULL, IDC_ARROW), (HBRUSH)GetStockObject(LTGRAY_BRUSH));
return CView::PreCreateWindow(cs);
}
当然还有一个方法,响应WM_ERASEBKGND消息:
BOOL CMFCMDIView::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
RECT rcClient;
GetClientRect(&rcClient);
pDC->FillSolidRect(&rcClient, GetSysColor(COLOR_APPWORKSPACE));
return TRUE;
//return CView::OnEraseBkgnd(pDC);
}
都行。在OnDraw中画一遍也行。
在视图类添加一个成员变量:
protected:
CRectTracker m_Tracker;
找个地方初始化一下,视图类的构造函数也行: