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 句柄类型 |
---|---|
HPEN |
|
HBRUSH |
|
HFONT |
|
HBITMAP |
|
HPALETTE |
|
HRGN |
备注
CImage 类提供增强位图支持。
类库中每个图形对象类为您通过创建该图形对象类的构造函数,您必须使用合适创建函数进行初始化,如 CreatePen。
在类库中每个图像对象类有一个转换运算符,它可以将 MFC 对象转换为关联的 Windows 句柄。 结果句柄直到其关联的对象分离都有效。 使用对象的 Detach 成员函数分离句柄。
以下代码转换 CPen 对象为窗口句柄:
CPen myPen;
myPen.CreatePen(PS_COSMETIC, 1, RGB(255,255,0));
HPEN hMyPen = (HPEN)myPen;
创建设备上下文图形对象。
在堆栈帧定义图形对象。 使用给定类型创建函数初始化对象,如 CreatePen。 或者,在构造函数中初始化对象。 参见 一阶和两阶创建 的讨论,其中提供代码示例。
选择对象到当前设备上下文,保存之前选择的旧图形对象。
如果与当前图形对象一起工作,请选择旧图形对象返回到设备上下文还原回其状态。
在范围退出时,允许框架分配的图像对象自动删除。
备注
如果您重复使用一个图形对象,您可以只为它分配一次并在需要时选择它到设备上下文。当不再需要时,请确保删除这些对象。