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