[code]WM_PAINT에서 한것 WM_DRAW라면 pDC를 받으니 거기에 맞게 변경해야겠지[/code]
// 더블 버퍼링을 위한 DC과 BITMAP 생성
CDC mDC;
CBitmap mBitmap, *pOldBitmap;
CRect m_rtCtrlSize;
// 윈도우 크기를 알아내자.
GetClientRect(&m_rtCtrlSize);
// MDC와 비트맵에 현재 dc를 정의 및 설정
mDC.CreateCompatibleDC(&dc);
mBitmap.CreateCompatibleBitmap(&dc, m_rtCtrlSize.Width(), m_rtCtrlSize.Height());
pOldBitmap = mDC.SelectObject(&mBitmap);
// 펜 설정
CPen myPen, *pOldPen;
myPen.CreatePen(PS_SOLID, 1, RGB(103, 99, 114)); // 굵기 1 픽셀의 그레이 솔리드 펜 생성
pOldPen = mDC.SelectObject(&myPen);
// 메모리 dc에 내용을 그리고
mDC.Rectangle(m_rtCtrlSize);
// 일반 dc에서 메모리 dc의 내용을 가져온다.
dc.BitBlt(0, 0, m_rtCtrlSize.Width(), m_rtCtrlSize.Height(), &mDC, 0, 0, SRCCOPY);
// 설정한 객체를 원상태로 복귀
mDC.SelectObject(pOldBitmap);
mDC.SelectObject(pOldPen);
// 더블 버퍼링을 위한 DC과 BITMAP 생성
CDC mDC;
CBitmap mBitmap, *pOldBitmap;
CRect m_rtCtrlSize;
// 윈도우 크기를 알아내자.
GetClientRect(&m_rtCtrlSize);
// MDC와 비트맵에 현재 dc를 정의 및 설정
mDC.CreateCompatibleDC(&dc);
mBitmap.CreateCompatibleBitmap(&dc, m_rtCtrlSize.Width(), m_rtCtrlSize.Height());
pOldBitmap = mDC.SelectObject(&mBitmap);
// 펜 설정
CPen myPen, *pOldPen;
myPen.CreatePen(PS_SOLID, 1, RGB(103, 99, 114)); // 굵기 1 픽셀의 그레이 솔리드 펜 생성
pOldPen = mDC.SelectObject(&myPen);
// 메모리 dc에 내용을 그리고
mDC.Rectangle(m_rtCtrlSize);
// 일반 dc에서 메모리 dc의 내용을 가져온다.
dc.BitBlt(0, 0, m_rtCtrlSize.Width(), m_rtCtrlSize.Height(), &mDC, 0, 0, SRCCOPY);
// 설정한 객체를 원상태로 복귀
mDC.SelectObject(pOldBitmap);
mDC.SelectObject(pOldPen);
'Windows > MFC' 카테고리의 다른 글
윈도우 기본 폰트 가져오기 GetStockObject(DEFAULT_GUI_FONT) (0) | 2013.10.02 |
---|---|
GDI+ 용 Double Buffering (더블 버퍼링) (0) | 2013.10.02 |
SWFLIB - a free Flash authoring library (0) | 2013.10.02 |
Flash GUI for your exe using minimalistic approach (0) | 2013.10.02 |
Windows Shell Command (0) | 2013.10.02 |