mfc_DB - 8BitsCoding/RobotMentor GitHub Wiki
void CDCDraw::DoubleBuffering(void)
{
CWnd* pWnd = NULL;
pWnd = GetDlgItem(IDC_ST_PICTURE);
CDC *pDCc = pWnd->GetDC();
CRect rect;
pWnd->GetClientRect(&rect);
// memDC에 그릴정보를 임시로 저장함.
CDC memDC;
CBitmap *pOldBitmap, bitmap;
memDC.CreateCompatibleDC(pDCc);
bitmap.CreateCompatibleBitmap(pDCc, rect.right, rect.bottom);
pOldBitmap = memDC.SelectObject(&bitmap);
CPen *pOldPen = NULL;
CBrush *pOldBrush = NULL;
CPen penWhite(PS_SOLID, 1, RGB(255, 255, 255));
CBrush brushWhite(RGB(255, 255, 255));
pOldPen = memDC.SelectObject(&penWhite);
pOldBrush = memDC.SelectObject(&brushWhite);
memDC.Rectangle(0, 0, rect.right, rect.bottom);
memDC.SelectObject(pOldPen);
memDC.SelectObject(pOldBrush);
pDCc->BitBlt(0, 0, rect.right, rect.bottom, &memDC, 0, 0, SRCCOPY);
memDC.SelectObject(pOldBitmap);
bitmap.DeleteObject();
memDC.DeleteDC();
pWnd->ReleaseDC(pDCc);
}
참고사이트