CBitmapDC - An automatic memory DC wrapper






4.86/5 (12 votes)
Nov 25, 1999

142705

3676
A handy class that provides a memory bitmap device context
CBitmapDC
is a subclass of CDC
. It is a handy little
class that provides a memory bitmap device context without having to reinvent the
wheel every time you need one.
Example 1
CBitmapDC can be used to make a CBitmap on the fly- make a memory bitmap DC by calling CBitmapDC's constructor with the desired bitmap width and height
- draw in this device context with normal CDC drawing functions
- call CBitmapDC's Close function, this returns a pointer to the finished CBitmap
- do whatever you want to do with the CBitmap
- delete the CBitmap
void CMyView::OnDraw(CDC* pDC) { CBitmapDC bitmapDC(50, 50, pDC); bitmapDC.Rectangle(0, 0, 50, 50); bitmapDC.MoveTo(0,50); bitmapDC.LineTo(50,0); CBitmap *pbmp = bitmapDC.Close(); DrawBitmap(pbmp, pDC, CPoint(10, 10)); delete pbmp; }
Example 2
CBitmapDC can be used as a temporary scratchpad- make a memory bitmap DC by calling CBitmapDC's constructor with the desired bitmap width and height
- draw in this device context with normal CDC drawing functions
- do whatever you want to do e.g. blit the memory DC to screen
- use the automatic cleanup of CBitmapDC's destructor
void CMyView::OnDraw(CDC* pDC) { CBitmapDC bitmapDC_2(50, 50, pDC); bitmapDC_2.Rectangle(0, 0, 50, 50); bitmapDC_2.MoveTo(0, 0); bitmapDC_2.LineTo(50, 50); pDC->BitBlt(200, 10, 50, 50, &bitmapDC_2, 0, 0, SRCCOPY); }