图形对象
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;
在设备上下文中创建图形对象
在堆栈帧上定义图形对象。 使用特定于类型的创建函数(如
CreatePen
)初始化对象。 或者,在构造函数中初始化对象。 请参阅一阶段和两阶段构造的讨论,其中提供了示例代码。选择对象进入当前设备上下文中,并保存以前选择的旧图形对象。
处理了当前图形对象之后,选择旧图形对象返回设备上下文以还原其状态。
允许在退出范围时自动删除帧分配的图形对象。
注意
如果重复使用图形对象,则可以分配它一次,然后在每次需要时选择它进入设备上下文中。 请务必在不再需要时删除这类对象。