GSI

DC 내용 복사해서 다른 곳의 DC에 적용하기

내용 구현 :

Flicker Free Code 사용한 클래스 의 이름을 CMemDC 라고 하겠습니다.
해당 코드는 위에 있습니다.

우선 CMemDC로 선언한 변수에 현재 화면에 그려진 DC를 적용시켜 줍니다.
m_pTestFormDlg->m_pParentMemDC = new CMemDC(pDC, &rect);

해당 pDC와 화면 영역 값을 넘겨 주면서 생성해 줍니다.
원래 이 부분의 rect는 제가 집어 넣은 겁니다. 안해주면 내부에서 GetClipRect()로 값을
구해서 적용하게 되어 있습니다.

DC와 같이 적용된 CMemDC 쪽에 BitBlt를 사용해서 해당 DC의 내용을 그립니다.
m_pTestFormDlg->m_pParentMemDC->BitBlt(
   0, 0, rect.Width(), rect.Height(), pDC, 0, 0, SRCCOPY);

이제 이 DC를 다른 곳에서 BitBlt를 해서 사용하시면 됩니다.
pdc->BitBlt(0, 0, 850, 666, m_pParentMemDC, 0, 0, SRCCOPY);

이상. ^^

Posted by gsi
: