단점 실시간으로 이미지에 선을 그리고 렌더링하는것을 반복하기에는 부적합하다
because 너무느리다
MFC에서
더블버퍼링 사용하기.
이걸
왜 지금까지 안올려놨었지 -.-?;;
일단
제일 중요한건 헤더 파일에
CBitmap m_Bitmap;
를
선언 하는 것.
이
비트맵에 객체를 생성하고 이것저것 해줄 것임.
우선
아래와 같이 Bitmap에 그림을 그려줌.
void CDlgXXX::MakeMemBitmap(void) { CClientDC dc(this); //실제 dc CBitmap* pOldBmp; //oldbmp CDC MemDC; //메모리DC m_Bitmap.DeleteObject(); //기존꺼 지워줌 m_Bitmap.CreateCompatibleBitmap(&dc, 500, 200); //새로 만들어줌 MemDC.CreateCompatibleDC(&dc); //memDC도 새로 만들어줌 pOldBmp = MemDC.SelectObject(&m_Bitmap); //memDC의 비트맵 선택 MemDC.MoveTo(0,0); MemDC.LineTo(500,200); //memDC에 그린다.(비트맵 위에 그려진다) MemDC.SelectObject(pOldBmp); //oldbmp 선택 MemDC.DeleteDC(); //memDC를 지운다. }
void CDlgXXX::OnPaint() { CPaintDC dc(this); // device context for painting CDC MemDC; CBitmap* pOldBmp; MemDC.CreateCompatibleDC(&dc); pOldBmp = MemDC.SelectObject(&m_Bitmap); dc.BitBlt(0,0,500,200, &MemDC, 0,0,SRCCOPY); MemDC.SelectObject(pOldBmp); MemDC.DeleteDC(); }
반응형
'프로그래밍(Programming) > MFC&API' 카테고리의 다른 글
콤보박스 변수를 지정하지 않고 사용 하는 방법 (0) | 2012.11.01 |
---|---|
MFC view 클래스 사용자 정의 클래스에서 상속 받기 (0) | 2012.11.01 |
CString 을 float 로 변환 (0) | 2012.11.01 |
CCmdUI 클래스 : 사용자 인터페이스 갱신 (0) | 2012.11.01 |
EditBox 가 CString 일때 비활성화(회색으로) 시키기 (0) | 2012.11.01 |