19,468
社区成员
发帖
与我相关
我的任务
分享
CRect rcClient;
m_pMainView->GetClientRect(rcClient);
int nClientWdt = rcClient.Width();
int nClientHgt = rcClient.Height();
CDC memDC;
memDC.CreateCompatibleDC(pDC);
CBitmap memBitmap;
memBitmap.CreateCompatibleBitmap(pDC, nClientWdt, nClientHgt);
CBitmap * pOldBitmap = memDC.SelectObject(&memBitmap);
memDC.FillSolidRect(rcClient, RGB(128, 128, 128));
BITMAPINFO bt;
bt.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bt.bmiHeader.biWidth = nWdt;
bt.bmiHeader.biHeight = nHgt;
bt.bmiHeader.biPlanes = 1;
bt.bmiHeader.biBitCount = 24;
bt.bmiHeader.biCompression = BI_RGB;
bt.bmiHeader.biSizeImage = 0;
bt.bmiHeader.biXPelsPerMeter = 0;
bt.bmiHeader.biYPelsPerMeter = 0;
bt.bmiHeader.biClrUsed = 0;
bt.bmiHeader.biClrImportant = 0;
::SetDIBitsToDevice(memDC.GetSafeHdc(), xorg, yorg, nWidth, nHeight, 0,
0, 0, nHeight, buf, &bt, DIB_RGB_COLORS);
pDC->BitBlt(0, 0, nWidth, nHeight, &memDC, 0, 0, SRCCOPY);
memDC.SelectObject(pOldBitmap);
memBitmap.DeleteObject();
memDC.DeleteDC();