我想创建一个大的CompatibleDC,在上面画一个大的图像,然后bitblt部分图像到其他DC,以达到高性能。
我正在使用以下代码来创建兼容的 Memory DC。但是当矩形变得非常大时,等等:5000*5000,创建的 CompatibleDC 变得不稳定。有时还可以,有时却失败了。我的代码有什么问题吗?
input :pInputDC
output:pOutputMemDC
{
pOutputMemDC=new CDC();
VERIFY(pOutputMemDC->CreateCompatibleDC(pInputDC));
CRect rect(0,0,nDCWidth,nDCHeight);
CBitmap bitmap;
if (bitmap.CreateCompatibleBitmap(pInputDC, rect.Width(), rect.Height()))
{
pOutputMemDC->SetViewportOrg(-rect.left, -rect.top);
m_pOldBitmap = pOutputMemDC->SelectObject(&bitmap);
}
CBrush brush;
VERIFY(brush.CreateSolidBrush(RGB(255,0, 0)));
brush.UnrealizeObject();
pOutputMemDC->FillRect(rect, &brush);
}