0
点赞
收藏
分享

微信扫一扫

VC6,SDI视图改变背景颜色的方法

不怎么时髦,还在用VC6,无聊瞎写的............
SDI视图改变背景颜色分两步吧,效果还是很好的.
首先在CXXView类的OnDraw添加颜色.


void CDigimizerView::OnDraw(CDC* pDC)
{
CDigimizerDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
CRect rect;
GetClientRect(rect);
COLORREF rColor = GetSysColor(COLOR_3DFACE); //COLOR_BTNFACE
pDC->FillSolidRect(rect,rColor);
// TODO: add draw code for native data here

}


效果出来了,但是改变窗口大小的时候,背景色看起来一闪一闪的,
再就是CXXView类响应WM_ERASEBKGND消息,将生成的 return CView::OnEraseBkgnd(pDC);注释掉,即不要调用CView的OnEraseBkgnd()函数,直接return true;就解决了.像下面这样.



BOOL CDigimizerView::OnEraseBkgnd(CDC* /* pDC*/)
{
//return CView::OnEraseBkgnd(pDC);
return TRUE;
}


PS:代码全写到一块也是的.

BOOL CDigimizerView::OnEraseBkgnd(CDC* pDC)
{
//return CView::OnEraseBkgnd(pDC);
CRect Rect;
GetClientRect(&Rect);
pDC->FillSolidRect(&Rect,::GetSysColor(COLOR_APPWORKSPACE)); // COLOR_BTNFACE
return TRUE;
}

举报

相关推荐

0 条评论