利用双缓冲技术贴两张图,为什么图片以外的地方显示全黑
代码:
CPaintDC dc(this);
CDialogEx::OnPaint(); //重绘对话框
CDialogEx::UpdateWindow(); //更新windows窗口,如果无这步调用,图片显示还会出现问题
CRect rt;
GetClientRect(&rt);
CDC dcMem;
dcMem.CreateCompatibleDC(&dc);
CBitmap bmp,bmpXY,bmpZ;
bmp.CreateCompatibleBitmap(&dc,rt.Width(),rt.Height());
CBitmap *oldmap=dcMem.SelectObject(&bmp);
dcMem.FillSolidRect(rt,dc.GetBkColor());
CDC mem1,mem2;
mem1.CreateCompatibleDC(&dcMem);
mem2.CreateCompatibleDC(&dcMem);
bmpXY.LoadBitmap(IDB_BITMAPCircle1);
bmpZ.LoadBitmap(IDB_BITMAPCircle2);
mem1.SelectObject(&bmpXY);
mem2.SelectObject(&bmpZ);
dcMem.BitBlt(m_BmpPositionX,m_BmpPositionY,m_BmpWidth,m_BmpHeight,&mem1,0,0,SRCCOPY);
dcMem.BitBlt(m_ZBmpPositionX,m_ZBmpPositionY,m_ZBmpWidth,m_ZBmpHeight,&mem2,0,0,SRCCOPY);
dc.BitBlt(0,0,rt.Width(),rt.Height(),&dcMem,0,0,SRCCOPY);
dcMem.SelectObject(oldmap);
bmp.DeleteObject();
dcMem.DeleteDC();