메뉴 건너뛰기

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

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 추천 수 날짜 최근 수정일
» MFC 더블 버퍼링 질문 [2] A.미스릴 6603   2008-06-13 2013-11-23 08:43
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.ri...  
4 문D 질문 #2 [1] A.미스릴 8797   2008-06-01 2009-01-07 22:05
이거 도배하는거같은 마음이 드네여 ㅈㅅ 제가 대화창을 다뤄봤는데여 CTextDlg textdialog(50); CTextDlg * pt_textdialog(&textdialog); pt_textdialog->SetDlg(100, 100, 200, 200); pt_textdialog->SetColor(255,255,0); pt_textdialog->SetDlgBox("_d...  
3 cocos2d-x 터치와 업데이트 활성화 시키기 똥똥배 10656   2011-10-27 2013-09-13 07:29
cocos2d와 달리, 윈도우 환경에서 cocos2d-x 프로그램을 짜보면 상속을 받았음에도 update, ccTouchesBegan 등의 함수가 작동되지 않음을 알 수 있다. 터치 해결법: OnEnter와 OnExit를 추가하고, 다음 같이 적어준다. void HelloWorld::onEnter() { //단일 ...  
2 VC++ 2008 Express Edition에서 문D라이브 링크 [2] A.미스릴 13090   2008-04-17 2014-04-15 17:28
SDK도 최신버전으로 깔아주었고 도구 설정도 적절하게 했습니다 모든 셋팅이 완료되고 링크를 해보니까 아래와 같은 문장이 쭉쭉나오는군요 warning은 굉장히 많이 나오는데 실제로 컴파일을 막아버린 부분은 LINK : fatal error LNK1104: 'LIBC.lib' 파일을 ...  
1 자동화된 Lua 스크립트의 문서화 - LDoc 노루발 43227   2021-01-11 2021-01-11 11:53
다운로드 https://github.com/lunarmodules/LDoc penlight 설치가 필요 luarocks install penlight 프로젝트가 있는 폴더에서 아래의 명령행을 실행 lua /path/to/ldoc/ldoc.lua $* https://stevedonovan.github.io/ldoc/manual/doc.md.html 문서 코멘트라는걸...