CFontHolder 类
实现常用字体属性并封装 Windows 字体对象和 IFont
接口的功能。
语法
class CFontHolder
成员
公共构造函数
名称 | 描述 |
---|---|
CFontHolder::CFontHolder | 构造 CFontHolder 对象。 |
公共方法
名称 | 描述 |
---|---|
CFontHolder::GetDisplayString | 检索容器的属性浏览器中显示的字符串。 |
CFontHolder::GetFontDispatch | 返回字体的 IDispatch 界面。 |
CFontHolder::GetFontHandle | 返回 Windows 字体的句柄。 |
CFontHolder::InitializeFont | 初始化 CFontHolder 对象。 |
CFontHolder::QueryTextMetrics | 检索相关字体的信息。 |
CFontHolder::ReleaseFont | 断开 CFontHolder 对象与 IFont 和 IFontNotification 接口的连接。 |
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。
备注
cyLogical 和 cyHimetric 的比例用于计算以逻辑单元表示的字体点大小的正确显示大小,以 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 单元为单位)。
返回值
指向要替换的字体的指针。
备注
有关 cyLogical 和 cyHimetric 参数的讨论,请参阅 GetFontHandle。
CFontHolder::SetFont
释放任何现有字体并将 CFontHolder
对象连接到 IFont
接口。
void SetFont(LPFONT pNewFont);
参数
pNewFont
指向新 IFont
接口的指针。