메뉴 건너뛰기

창작에 관련된 질문이나 간단한 팁, 예제를 올리는 곳

void CPingpongView::OnDraw(CDC* pDC)
{
 CPingpongDoc* pDoc = GetDocument();
 ASSERT_VALID(pDoc);
 // TODO: add draw code for native data here

 // 현재 창 크기와 같은 DC를 만듬
 CRect rect;
 GetClientRect(&rect);
 int int_client_width = (rect.right) - (rect.left);
 int int_client_height = (rect.bottom) - (rect.top);

 // 메모리상의 DC를 만듬
 CDC BufferDC; // DC 선언
 BufferDC.CreateCompatibleDC(pDC); // 윈도우 DC(pDC)와 호환되도록 함

 // 메모리상의 비트맵을 만듬
 CBitmap bmpBuffer; // DC 선언
 bmpBuffer.CreateCompatibleBitmap(pDC, int_client_width, int_client_height);
 // 인도우 DC(pDC)와 호환되도록 함

 // 윈도우 호환 비트맵을 메모리DC에 집어넣음
 CBitmap *pOldBitmap = (CBitmap *)BufferDC.SelectObject(&bmpBuffer);

 // 그려야 할 것들을 그림
 Drawing(&BufferDC);

 // 메모리DC에 그린 것을 pDC에 옮겨붙임
 pDC->BitBlt(0,0, int_client_width, int_client_height,
  &BufferDC, 0, 0, SRCCOPY);

 // 메모리DC 오브젝트 복구
 BufferDC.SelectObject(pOldBitmap);

 
}

이러면 깜박일 이유가 없는거같은데 실제론 막 깜박이네요 ㅡㅡ;;;
어디에 문제가 있는건지...

조회 수 :
6603
등록일 :
2008.06.13
11:00:38 (*.50.69.16)
엮인글 :
게시글 주소 :
https://hondoom.com/zbxe/index.php?mid=study&document_srl=208946

똥똥배

2008.06.13
18:03:24
(*.239.144.2)
MFC의 DC를 다룬지가 오래되서 가물가물하군요.
제가 창작탑에 올린 온해저자 소스를 참조하시길 바랍니다.
온해저자에서도 더블 버퍼링을 쓰고 있습니다.

A.미스릴

2008.06.16
16:43:28
(*.50.69.16)

알고보니 InValidate()에 값 false를 집어넣어야했군영...

List of Articles
번호 제목 글쓴이 날짜 조회 수sort
5 love2d에서 안드로이드 터치 제스처 인식하기 노루발 2020-11-12 20
4 certbot을 이용한 HTTPS 인증서 발급 및 적용 노루발 2021-01-12 18
3 리캡챠 적용 [1] 노루발 2021-01-08 11
2 Bootstrap4 container class가 적용된 div의 양 옆에 설정하지 않은 margin이 생김 노루발 2024-02-07 5
1 express.js 세션 적용 후 리다이렉트 시 세션 적용이 제대로 안 되는 문제점 노루발 2024-02-07 4