您的位置:首页 > 其它

mfc 双缓冲绘制背景

2016-02-29 16:54 113 查看
void CMainPropertySheet::OnPaint()

{

CPaintDC dc(this); // device context for painting

CRect rc,rect;

CDC dcMem;

GetClientRect(&rc);

CBitmap bmp, *pOldBit; //内存中承载临时图象的位图

bmp.CreateCompatibleBitmap(&dc,rc.Width(),rc.Height());

dcMem.CreateCompatibleDC(&dc);

pOldBit = dcMem.SelectObject(&bmp);

CPropertyPage* pg=this->GetPage(m_btnDown-IDC_D_BTN);

pg->MoveWindow(35+addw,14+addh,rc.Width()-addw-15,rc.Height()-addh-65);

rect.top = rc.top;

rect.bottom = 14+addh;

rect.left = rc.left;

rect.right = rc.right;

dcMem.FillSolidRect(rc,RGB(9,81,129));

rect.top =rc.Height()-52;

rect.bottom = rc.bottom;

rect.left = rc.left;

rect.right = rc.right;

dcMem.FillSolidRect(rect,RGB(186,207,220));

rect.top = 14+addh;

rect.bottom =rc.Height()-52;

rect.left = rc.left;

rect.right = 165;

dcMem.FillSolidRect(rect,RGB(32,110,158));

rect.top = 14+addh;

rect.bottom =rc.Height()-52;

rect.left = 165;

rect.right = rc.right;

dcMem.FillSolidRect(rect,RGB(255,255,255));

dc.BitBlt(0,0,rc.Width(),rc.Height(),&dcMem,0,0,SRCCOPY);

dcMem.SelectObject(pOldBit);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: