图形对象

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

备注

GDI+ 由 Windows XP 附带并且可作为 Windows NT 4.0 SP6, Windows 2000, Windows 98 及 Windows Me 的再发行组件提供。若要下载最新的可再发行组件,请参见 https://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdkredist.htm。有关更多信息,请参见 MSDN 的 GDI+ SDK 文档:https://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdicpp/GDIPlus/GDIPlus.asp.

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

Windows GDI 对象的类

Windows 句柄类型

CPen

HPEN

CBrush

HBRUSH

CFont

HFONT

CBitmap

HBITMAP

CPalette

HPALETTE

CRgn

HRGN

备注

CImage 类提供增强位图支持。

类库中每个图形对象类为您通过创建该图形对象类的构造函数,您必须使用合适创建函数进行初始化,如 CreatePen

在类库中每个图像对象类有一个转换运算符,它可以将 MFC 对象转换为关联的 Windows 句柄。 结果句柄直到其关联的对象分离都有效。 使用对象的 Detach 成员函数分离句柄。

以下代码转换 CPen 对象为窗口句柄:

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

创建设备上下文图形对象。

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

  2. 选择对象到当前设备上下文,保存之前选择的旧图形对象。

  3. 如果与当前图形对象一起工作,请选择旧图形对象返回到设备上下文还原回其状态。

  4. 在范围退出时,允许框架分配的图像对象自动删除。

备注

如果您重复使用一个图形对象,您可以只为它分配一次并在需要时选择它到设备上下文。当不再需要时,请确保删除这些对象。

您想进一步了解什么?

请参见

概念

窗口对象