说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

请问如何在CView类显示后其背景是蓝色的???

编辑:说三道四文库 发布时间:2018-02-23 10:38
HTML文档下载 WORD文档下载 PDF文档下载
在ONERASEBK里
fillsolidrect

return TRUE;
但是在大小变化的时候总是出现闪动
我的语句:
CRect rect;
GetClientRect(&rect);
pDC->FillSolidRect(&rect,RGB(0,0,255));
在 PreCreate 中,重新注册一个背景为蓝色的类。
BOOL CMyView::OnEraseBkgnd(CDC* pDC) 
{
    CBrush backBrush(RGB(0, 0, 255));     
    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; 

}
将楼上老兄的后面部分去掉,用FillRect()函数更简单
firehorizon和chinaprogrammer方法最好,
我只是随便说说 :)
补充一下:
之所以提供我的答案,只是想说明问题还有另一种思考方式而已.
最简单也是最有效的当然是"阿拉丁"的.
FillSolidRect比FillRect来的更简单更有效率.
FillRect的内部实际上是调用了PatBlt函数.
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘