VC更改View背景色的几种方式
2013-01-13 02:02 youxin 阅读(342) 评论(1) 编辑 收藏 举报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;
}
{
// 设置所要求背景色的刷子
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);
}
{
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被触发