1。添加消息映射OnEraseBkgnd,
BOOL CSampleView::OnEraseBkgnd(CDC* pDC)
...{
// 设置所要求背景色的刷子
CBrush backBrush(RGB(255, 128, 128));
// 保存旧刷子
CBrush* pOldBrush = pDC->SelectObject(&backBrush);
CRect rect;
pDC->GetClipBox(&rect); // 擦除所需的区域
pDC->PatBlt(rect.left, rect.top, rect.Width(), rect.Height(), PATCOPY);
pDC->SelectObject(pOldBrush);
return TRUE;
}
2。添加消息映射OnDraw
void CScrollSampleView::OnDraw(CDC* pDC)
...{
CScrollSampleDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// TODO: 在此处为本机数据添加绘制代码
CRect rc;
GetClientRect(&rc);
CBrush br(RGB(0,0,0));
pDC->FillRect(&rc,&br);
ReleaseDC(pDc);
}OnEraseBkgnd先于OnDraw被触发
本文详细介绍了MFC中OnEraseBkgnd与OnDraw两个消息映射的使用方法及工作原理。通过实例展示了如何利用这两个函数实现背景色的设置与绘制区域的填充,帮助读者理解MFC绘图的基本流程。
8459

被折叠的 条评论
为什么被折叠?



