CFontHolder 类

实现常用字体属性并封装 Windows 字体对象和 IFont 接口的功能。

语法

class CFontHolder

成员

公共构造函数

名称 描述
CFontHolder::CFontHolder 构造 CFontHolder 对象。

公共方法

名称 描述
CFontHolder::GetDisplayString 检索容器的属性浏览器中显示的字符串。
CFontHolder::GetFontDispatch 返回字体的 IDispatch 界面。
CFontHolder::GetFontHandle 返回 Windows 字体的句柄。
CFontHolder::InitializeFont 初始化 CFontHolder 对象。
CFontHolder::QueryTextMetrics 检索相关字体的信息。
CFontHolder::ReleaseFont 断开 CFontHolder 对象与 IFontIFontNotification 接口的连接。
CFontHolder::Select 在设备上下文中选择字体资源。
CFontHolder::SetFont CFontHolder 对象连接到 IFont 接口。

公共数据成员

“属性” 描述
CFontHolder::m_pFont 指向 CFontHolder 对象的 IFont 接口的指针。

注解

CFontHolder 没有基类。

使用此类为控件实现自定义字体属性。 有关创建此类属性的信息,请参阅 ActiveX 控件:使用字体一文。

继承层次结构

CFontHolder

要求

标头:afxctl.h

CFontHolder::CFontHolder

构造 CFontHolder 对象。

explicit CFontHolder(LPPROPERTYNOTIFYSINK pNotify);

参数

pNotify
指向字体的 IPropertyNotifySink 接口的指针。

备注

在使用它之前,必须调用 InitializeFont 以初始化生成的对象。

CFontHolder::GetDisplayString

检索可在容器的属性浏览器中显示的字符串。

BOOL GetDisplayString(CString& strValue);

参数

strValue
对要保存显示字符串的 CString 的引用。

返回值

如果成功检索字符串,则为非零值;否则为 0。

CFontHolder::GetFontDispatch

调用此函数以检索指向字体调度接口的指针。

LPFONTDISP GetFontDispatch();

返回值

指向 CFontHolder 对象的 IFontDisp 接口的指针。 请注意,调用 GetFontDispatch 的函数在处理完后必须调用接口指针上的 IUnknown::Release

注解

在调用 GetFontDispatch 之前调用 InitializeFont

CFontHolder::GetFontHandle

调用此函数以获取 Windows 字体的句柄。

HFONT GetFontHandle();

HFONT GetFontHandle(
    long cyLogical,
    long cyHimetric);

参数

cyLogical
绘制控件的矩形的高度(以逻辑单元为单位)。

cyHimetric
控件的高度(以 MM_HIMETRIC 单元为单位)。

返回值

字体对象的句柄;否则为 NULL。

备注

cyLogicalcyHimetric 的比例用于计算以逻辑单元表示的字体点大小的正确显示大小,以 MM_HIMETRIC 单元表示:

显示大小 = (cyLogical / cyHimetric) X 字号

没有参数的版本返回正确调整屏幕字号的句柄。

CFontHolder::InitializeFont

初始化 CFontHolder 对象。

void InitializeFont(
    const FONTDESC* pFontDesc = NULL,
    LPDISPATCH pFontDispAmbient = NULL);

参数

pFontDesc
指向用于指定字体特征的字体说明结构 (FONTDESC) 的指针。

pFontDispAmbient
指向容器的环境字体属性的指针。

备注

如果 pFontDispAmbient 不是 NULL,则该 CFontHolder 对象将连接到容器的环境字体属性使用的 IFont 接口的克隆。

如果 pFontDispAmbient 为 NULL,则从 pFontDesc 指向的字体说明创建新的字体对象;如果 pFontDesc 为 NULL,则从默认说明创建。

构造 CFontHolder 对象后调用此函数。

CFontHolder::m_pFont

指向 CFontHolder 对象的 IFont 接口的指针。

LPFONT m_pFont;

CFontHolder::QueryTextMetrics

检索对象 CFontHolder 表示的物理字体的相关信息。

void QueryTextMetrics(LPTEXTMETRIC lptm);

参数

lptm
指向将接收信息的 TEXTMETRIC 结构的指针。

CFontHolder::ReleaseFont

此函数将 CFontHolder 对象与 IFont 接口断开连接。

void ReleaseFont();

CFontHolder::Select

调用此函数以将控件的字体选择到指定的设备上下文中。

CFont* Select(
    CDC* pDC,
    long cyLogical,
    long cyHimetric);

参数

pDC
在其中选择字体的设备上下文。

cyLogical
绘制控件的矩形的高度(以逻辑单元为单位)。

cyHimetric
控件的高度(以 MM_HIMETRIC 单元为单位)。

返回值

指向要替换的字体的指针。

备注

有关 cyLogicalcyHimetric 参数的讨论,请参阅 GetFontHandle

CFontHolder::SetFont

释放任何现有字体并将 CFontHolder 对象连接到 IFont 接口。

void SetFont(LPFONT pNewFont);

参数

pNewFont
指向新 IFont 接口的指针。

另请参阅

层次结构图
CPropExchange 类