图形对象

Windows 提供了各种可在设备上下文中使用的绘图工具。 它提供了用于绘制线条的笔、用于填充内部的画笔以及用于绘制文本的字体。 MFC 提供等效于 Windows 中的绘图工具的图形对象类。 下表显示可用类以及等效的 Windows 图形设备接口 (GDI) 句柄类型。

注意

有关详细信息,请参阅 GDI+ SDK 文档

本文说明了这些图形对象类的用法:

用于 Windows GDI 对象的类

Windows 句柄类型
CPen HPEN
CBrush HBRUSH
CFont HFONT
CBitmap HBITMAP
CPalette HPALETTE
CRgn HRGN

注意

CImage 提供增强的位图支持。

类库中的每个图形对象类都具有一个构造函数,使你可以创建该类的图形对象,随后必须使用适当的创建函数(如 CreatePen)初始化这些对象。

类库中的每个图形对象类都具有一个强制转换运算符,可将 MFC 对象强制转换为关联的 Windows 句柄。 生成的句柄在关联对象将它分离之前都有效。 使用对象的 Detach 成员函数可分离句柄。

下面的代码将 CPen 对象强制转换为 Windows 句柄:

CPen myPen;
myPen.CreatePen(PS_COSMETIC, 1, RGB(255, 255, 0));
HPEN hMyPen = (HPEN)myPen;

在设备上下文中创建图形对象

  1. 在堆栈帧上定义图形对象。 使用特定于类型的创建函数(如 CreatePen)初始化对象。 或者,在构造函数中初始化对象。 请参阅一阶段和两阶段构造的讨论,其中提供了示例代码。

  2. 选择对象进入当前设备上下文中,并保存以前选择的旧图形对象。

  3. 处理了当前图形对象之后,选择旧图形对象返回设备上下文以还原其状态。

  4. 允许在退出范围时自动删除帧分配的图形对象。

注意

如果重复使用图形对象,则可以分配它一次,然后在每次需要时选择它进入设备上下文中。 请务必在不再需要时删除这类对象。

你想进一步了解什么

另请参阅

窗口对象