[VC++] 그림판 만들기
- 최초 등록일
- 2007.10.02
- 최종 저작일
- 2007.09
- 압축파일
- 가격 1,000원
소개글
모든 그래픽 처리를 OnDraw함수에서 해도 되지만 윈도우가 사라졌다가 나타날 때, 다른 윈도우에 의해 가려질 때 등, 화면에 그려질 내용이 바뀌지 않았는데도 새로 그려져야 하는 일이 자주 발생합니다. 임시로 화면의 내용이 저장했다가 다시 그려야 할 때 임시로 저장해 두었던 내용을 화면에 출력하면 프로그램 처리 속도가 빨라질 것입니다. 그리고 OnDraw에서 화면 DC를 직접 이용하여 그리게 되면 깜박임 현상이 나타납니다. 이런 현상을 방지하기 위해서라도 임시로 화면의 내용을 저장할 필요가 있습니다. 이러한 상황에 memory DC를 사용하는데 따로 클래스가 존재하는 것이 아니고 CDC 클래스의 인스턴스를 생성하는 것이 memory DC를 생성하는 것과 같습니다. 다만 화면 DC에 곧장 적용될 수 있게 하기 위해서 CDC 인스턴스를 생성할 때 CreateCompatibleDC 함수를 사용합니다. 그리고 실질적으로 화면의 내용을 저장하기 위해서 Bitmap GDI Object도 필요합니다. 아래 코드는 memory DC를 만드는 과정을 보여줍니다.
CDC *pDC = GetDC();
CDC *pMemDC = new CDC;
CRect rect;
CBitmap *pBitmap = new CBitmap;
pMemDC->CreateCompatibleDC(pDC);
pBitmap->CreateCompatibleBitmap(pDC, rect.Width(), rect.Height());
pMemDC->SelectObject(pBitmap);
…
pDC->BitBlt(0,0,rect.Width(),rect.Height(),pMemDC,0,0,SRCCOPY);
delete pMemDC;
delete pBitmap;
컴파일 실행환경
VC++ 6.0
압축파일 내 파일목록
PaintExam.dsp
PaintExam.aps
MainFrm.h
PaintExam.h
PaintExamDoc.h
PaintExamView.h
resource.h
StdAfx.h
MainFrm.cpp
PaintExam.cpp
PaintExamDoc.cpp
PaintExamView.cpp
StdAfx.cpp
PaintExam.clw
PaintExam.plg
PaintExam.ncb
PaintExam.opt
PaintExam.positions
PaintExam.rc
ReadMe.txt
PaintExam.dsw
res/PaintExam.ico
res/PaintExam.rc2
res/PaintExamDoc.ico
res/Toolbar.bmp
참고 자료
VC++ 영진출판사