CBitmapDC - 自动内存 DC 包装器






4.86/5 (12投票s)
1999年11月25日

143608

3676
一个方便的类,
CBitmapDC
是 CDC
的一个子类。 这是一个方便的小类,它提供了一个内存位图设备上下文,而无需每次需要时都重新发明轮子。
示例 1
CBitmapDC 可以用来动态创建一个 CBitmap- 通过调用 CBitmapDC 的构造函数,并传入所需的位图宽度和高度,来创建一个内存位图设备上下文
- 使用正常的 CDC 绘图函数在这个设备上下文中进行绘制
- 调用 CBitmapDC 的 Close 函数,这将返回一个指向完成的 CBitmap 的指针
- 对 CBitmap 做任何你想做的事情
- 删除 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; }
示例 2
CBitmapDC 可以用作一个临时草稿板- 通过调用 CBitmapDC 的构造函数,并传入所需的位图宽度和高度,来创建一个内存位图设备上下文
- 使用正常的 CDC 绘图函数在这个设备上下文中进行绘制
- 做任何你想做的事情,例如将内存设备上下文复制到屏幕上
- 使用 CBitmapDC 析构函数的自动清理功能
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); }