C/C++/MFC
[BITMAP]더블 버퍼링..
2006.07.07 16:16
#include "Dib.h" // 필요한 파일
초기화
CDC* pDC = pView->GetDC();
ASSERT(pDC);
m_dcCompat.CreateCompatibleDC(pDC);
pView->ReleaseDC(pDC);
// Allocate memory for the bitmap
m_pDib = new CDib(CSize(200,290), 24); // bits per pixel
VERIFY(m_pDib->CreateSection(&m_dcCompat)); // allocate memory for bitmap
그림 로드
m_bmpBoard.LoadBitmap( IDB_BACKBOARD ); // 배경그림 로드
m_bmpBlack27.LoadBitmap( IDB_BLACK_27 ); //
m_bmpBlack37.LoadBitmap( IDB_BLACK_37 ); //
m_bmpWhite37.LoadBitmap( IDB_WHITE_SPOT_37 ); //
m_bmpBlank37.LoadBitmap( IDB_BLANK_37 ); //
사용
// pDC 로 사용하면 된다.
CClientDC pDC(pView);
CBitmap *pOldBitmap;
pOldBitmap = (CBitmap *)m_dcCompat.SelectObject(&m_bmpBoard); // 새로운 Bitmap 설정
pDC.BitBlt(0, 0, 500, 500, &m_dcCompat, 0, 0, SRCCOPY);
메모리 해제
pDC->DeleteDC();
pOldBitmap->DeleteDC();
m_bmpBoard.DeleteDC();
m_bmpBoard.DeleteDC();
초기화
CDC* pDC = pView->GetDC();
ASSERT(pDC);
m_dcCompat.CreateCompatibleDC(pDC);
pView->ReleaseDC(pDC);
// Allocate memory for the bitmap
m_pDib = new CDib(CSize(200,290), 24); // bits per pixel
VERIFY(m_pDib->CreateSection(&m_dcCompat)); // allocate memory for bitmap
그림 로드
m_bmpBoard.LoadBitmap( IDB_BACKBOARD ); // 배경그림 로드
m_bmpBlack27.LoadBitmap( IDB_BLACK_27 ); //
m_bmpBlack37.LoadBitmap( IDB_BLACK_37 ); //
m_bmpWhite37.LoadBitmap( IDB_WHITE_SPOT_37 ); //
m_bmpBlank37.LoadBitmap( IDB_BLANK_37 ); //
사용
// pDC 로 사용하면 된다.
CClientDC pDC(pView);
CBitmap *pOldBitmap;
pOldBitmap = (CBitmap *)m_dcCompat.SelectObject(&m_bmpBoard); // 새로운 Bitmap 설정
pDC.BitBlt(0, 0, 500, 500, &m_dcCompat, 0, 0, SRCCOPY);
메모리 해제
pDC->DeleteDC();
pOldBitmap->DeleteDC();
m_bmpBoard.DeleteDC();
m_bmpBoard.DeleteDC();