IFont 接口 (ocidl.h)

在 Windows 字体对象周围提供包装器。 COM 字体对象通过其 IFont 接口支持许多读/写属性以及一组方法。 它支持 (但不支持通过调度接口 IFontDisp) 的相同属性集,后者派生自 IDispatch ,通过自动化提供对字体属性的访问。 系统提供具有两个接口的字体对象的标准实现。

字体对象还支持传出接口 IPropertyNotifySink ,以便客户端可以确定字体属性何时更改。 由于 font 对象支持至少一个传出接口,因此它还实现 IConnectionPointContainer 和相关接口以实现此目的。

font 对象提供 hFont 属性,该属性是符合为字体指定的其他属性的 Windows 字体句柄。 如果可能,字体对象会延迟实现此 hFont 对象,因此连续设置字体的两个属性不会导致实现中间字体。 此外,作为优化,系统实现的字体对象维护字体句柄缓存。 同一进程中具有相同属性的两个字体对象将返回相同的字体句柄。 font 对象可以随时从此缓存中删除字体句柄,这为使用 hFont 属性的客户端引入了特殊注意事项。

font 对象还支持 IPersistStream ,以便它可以从 IStream 实例保存和加载自身。 在内部使用字体对象的 对象通常会保存并加载字体,作为对象自身持久性处理的一部分。

此外,font 对象支持 IDataObject,它可以呈现包含字体属性的属性集,从而允许客户端将这些属性保存为文本。

继承

IFont 接口继承自 IUnknown 接口。 IFont 还具有以下类型的成员:

方法

IFont 接口具有这些方法。

 
IFont::AddRefHfont

通知字体对象,在调用 ReleaseHfont 或字体对象本身完全释放之前,使用 hFont 标识的以前实现的字体应保持有效。
IFont::Clone

创建重复字体对象。
IFont::get_Bold

获取字体的当前 Bold 属性。
IFont::get_Charset

检索字体中使用的字符集。
IFont::get_hFont

检索此字体对象描述的字体的句柄。
IFont::get_Italic

获取字体的当前斜体属性。
IFont::get_Name

检索字体系列的名称。
IFont::get_Size

检索字体的点大小。
IFont::get_Strikethrough

获取字体的当前删除线属性。
IFont::get_Underline

获取字体的当前下划线属性。
IFont::get_Weight

获取字体的当前 Weight 属性。
IFont::Isequal

将此字体对象与另一个字体对象进行比较以获取等效性。
IFont::p ut_Bold

设置字体的 Bold 属性。
IFont::p ut_Charset

设置字体的字符集。
IFont::p ut_Italic

设置字体的斜体属性。
IFont::p ut_Name

指定字体系列的新名称。
IFont::p ut_Size

设置字体的点大小。
IFont::p ut_Strikethrough

设置字体的删除线属性。
IFont::p ut_Underline

设置字体的“下划线”属性。
IFont::p ut_Weight

设置字体的 Weight 属性。
IFont::QueryTextMetrics

使用有关字体的信息填充调用方分配的结构。
IFont::ReleaseHfont

通知字体对象,之前使用 IFont::AddRefHfont 锁定缓存中此字体的调用方不再需要锁定。
IFont::SetHdc

为描述逻辑映射模式的字体提供设备上下文。
IFont::SetRatio

在逻辑单元和 HIMETRIC 单位之间转换此字体的缩放因子。

注解

IFont 接口中的每个属性包括一个 get_PropertyName 方法(如果属性支持读取访问)和一个 put_PropertyName 方法(如果该属性支持写入访问)。 其中大多数属性都支持读取和写入访问。

属性 类型 读取访问方法 写入访问方法 说明
名称 BSTR get_Name put_Name 字体的面名,例如 Arial。
大小 CY get_Size put_Size 字体的点大小,以 CY 类型表示,以允许小数点大小。
加粗 BOOL get_Bold put_Bold 指示字体是否加粗。
斜体 BOOL get_Italic put_Italic 指示字体是否倾斜。
强调 BOOL get_Underline put_Underline 指示字体是否带下划线。
删除线 BOOL get_Strikethrough put_Strikethrough 指示字体是否为删除线。
Weight short get_Weight put_Weight 字体的粗体。
Charset short get_Charset put_Charset 字体中使用的字符集,例如 ANSI_CHARSETDEFAULT_CHARSETSYMBOL_CHARSET
hFont HFONT get_hFont 可以选择到设备上下文中进行呈现的 Windows 字体句柄。
 

OLE 实现

系统提供字体对象的标准实现,其 IFont 接口位于基础系统字体支持之上。 字体对象是通过 函数 OleCreateFontIndirect 创建的。 字体对象通过其 IFont 接口支持许多读/写属性以及一组方法,并且支持 (但不支持通过派生自 IDispatch 的调度接口 IFontDisp) 的方法集,以便通过自动化提供对字体属性的访问。 字体对象的系统实现提供这两个接口。

要求

   
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 ocidl.h

请参阅

IFontDisp