CHOOSEFONTW 结构 (commdlg.h)
包含 ChooseFont 函数用于初始化 “字体 ”对话框的信息。 用户关闭对话框后,系统会返回有关用户在此结构中选择的信息。
语法
typedef struct tagCHOOSEFONTW {
DWORD lStructSize;
HWND hwndOwner;
HDC hDC;
LPLOGFONTW lpLogFont;
INT iPointSize;
DWORD Flags;
COLORREF rgbColors;
LPARAM lCustData;
LPCFHOOKPROC lpfnHook;
LPCWSTR lpTemplateName;
HINSTANCE hInstance;
LPWSTR lpszStyle;
WORD nFontType;
WORD ___MISSING_ALIGNMENT__;
INT nSizeMin;
INT nSizeMax;
} CHOOSEFONTW;
成员
lStructSize
类型:DWORD
结构的长度(以字节为单位)。
hwndOwner
类型:HWND
拥有对话框的窗口的句柄。 此成员可以是任何有效的窗口句柄,如果对话框没有所有者,也可以为 NULL 。
hDC
类型: HDC
ChooseFont 函数忽略此成员。
Windows Vista 和 Windows XP/2000: 打印机的设备上下文或信息上下文的句柄,其字体将在对话框中列出。 仅当 Flags 成员指定 CF_PRINTERFONTS 或 CF_BOTH 标志时,才使用此成员;否则,将忽略此成员。
lpLogFont
类型: LPLOGFONT
指向 LOGFONT 结构的指针。 如果在 Flags 成员中设置 CF_INITTOLOGFONTSTRUCT 标志并初始化其他成员,则 ChooseFont 函数使用与 LOGFONT 成员匹配的字体初始化对话框。 如果用户单击“ 确定” 按钮, ChooseFont 将根据用户的选择设置 LOGFONT 结构的成员。
iPointSize
类型: INT
所选字体的大小,以磅的 1/10 为单位。 ChooseFont 函数在用户关闭对话框后设置此值。
Flags
类型:DWORD
一组可用于初始化 “字体 ”对话框的位标志。 当对话框返回时,它会设置这些标志以指示用户输入。 此成员可以是以下一个或多个值。
值 | 含义 |
---|---|
|
使对话框显示“ 应用 ”按钮。 应提供一个挂钩过程来处理“应用”按钮WM_COMMAND消息。 挂钩过程可以将 WM_CHOOSEFONT_GETLOGFONT 消息发送到对话框,以检索包含字体当前所选内容的结构的地址。 |
|
此标志已过时。 若要将字体选择限制为除使用 OEM 或符号字符集的脚本以外的所有脚本,请使用 CF_SCRIPTSONLY。 若要获取原始CF_ANSIONLY行为,请使用 CF_SELECTSCRIPT并在 lpLogFont 指向的 LOGFONT 结构的 lfCharSet成员中指定ANSI_CHARSET。 |
|
对于字体枚举,将忽略此标志。
Windows Vista 和 Windows XP/2000: 使对话框列出可用的打印机和屏幕字体。 hDC 成员是与打印机关联的设备上下文或信息上下文的句柄。 此标志是 CF_SCREENFONTS 和 CF_PRINTERFONTS 标志的组合。 |
|
使对话框显示允许用户指定删除线、下划线和文本颜色选项的控件。 如果设置了此标志,则可以使用 rgbColors 成员指定初始文本颜色。 可以使用 lpLogFont 指向的结构的 lfStrikeOut 和 lfUnderline 成员指定删除线的初始设置和检查框下划线。 ChooseFont 可以使用这些成员返回用户的选择。 |
|
启用在此结构的 lpfnHook 成员中指定的挂钩过程。 |
|
指示 hInstance 和 lpTemplateName 成员指定用于代替默认模板的对话框模板。 |
|
指示 hInstance 成员标识包含预加载对话框模板的数据块。 如果指定了此标志,系统将忽略 lpTemplateName 成员。 |
|
ChooseFont 应枚举并允许仅选择固定间距字体。 |
|
如果用户尝试选择对话框中未列出的字体或样式,ChooseFont 应指示错误条件。 |
|
ChooseFont 还应该显示设置为“在字体控制面板中隐藏的字体。 Windows Vista 和 Windows XP/2000: 在 Windows 7 之前不支持此标志。 |
|
ChooseFont 应使用 lpLogFont 成员指向的结构来初始化对话框控件。 |
|
ChooseFont 应仅选择 nSizeMin 和 nSizeMax 成员指定的范围内的字号。 |
|
与 CF_NOVECTORFONTS 标志相同。 |
|
使用 LOGFONT 结构初始化对话框控件时,使用此标志可防止对话框显示字体名称组合框的初始选择。 如果没有适用于文本选择的单个字体名称,这非常有用。 |
|
禁用 脚本 组合框。 设置此标志后,当 ChooseFont 返回时,LOGFONT 结构的 lfCharSet 成员将设置为DEFAULT_CHARSET。 此标志仅用于初始化对话框。 |
|
ChooseFont 不应显示或允许选择字体模拟。 |
|
使用 结构初始化对话框控件时,使用此标志可阻止对话框显示“ 字号 ”组合框的初始选择。 如果没有适用于文本选择的单一字号,这非常有用。 |
|
使用 LOGFONT 结构初始化对话框控件时,使用此标志可阻止对话框显示“ 字体样式 ”组合框的初始选择。 当没有单一字体样式应用于文本选择时,这非常有用。 |
|
ChooseFont 不应允许选择矢量字体。 |
|
导致“ 字体 ”对话框仅列出水平方向的字体。 |
|
对于字体枚举,将忽略此标志。
Windows Vista 和 Windows XP/2000: 使对话框仅列出打印机支持的字体,这些字体与 hDC 成员标识的设备上下文或信息上下文相关联。 它还会导致字体类型说明标签显示在“ 字体 ”对话框的底部。 |
|
指定 ChooseFont 应仅允许选择可缩放字体。 可缩放字体包括矢量字体、可缩放打印机字体、TrueType 字体以及按其他技术缩放的字体。 |
|
对于字体枚举,将忽略此标志。
Windows Vista 和 Windows XP/2000: 使对话框仅列出系统支持的屏幕字体。 |
|
ChooseFont 应允许为所有非 OEM 字符集和符号字符集以及 ANSI 字符集选择字体。 这将取代 CF_ANSIONLY 值。 |
|
在输入时指定时,仅显示 LOGFONT 结构的 lfCharSet 成员中标识的字符集的字体。 不允许用户更改 脚本组合框中 指定的字符集。 |
|
使对话框显示“ 帮助 ”按钮。 hwndOwner 成员必须指定用于接收用户单击“帮助”按钮时对话框发送的 HELPMSGSTRING 注册消息的窗口。 |
|
ChooseFont 应仅枚举并允许选择 TrueType 字体。 |
|
lpszStyle 成员是指向包含样式数据的缓冲区的指针,ChooseFont 应使用该数据初始化字体样式组合框。 当用户关闭对话框时, ChooseFont 会将用户选择的样式数据复制到此缓冲区。
注意若要全球化应用程序,应使用 lpLogFont 指向的 LOGFONT 结构的 lfWeight 和 lfItalic 成员来指定样式。 样式名称可能会根据系统用户界面语言而更改。
|
|
已过时。 ChooseFont 忽略此标志。
Windows Vista 和 Windows XP/2000: ChooseFont 应仅允许选择打印机和显示器上可用的字体。 如果指定了此标志,则还应指定 CF_SCREENSHOTS 和 CF_PRINTERFONTS或 CF_BOTH 标志。 |
rgbColors
类型: COLORREF
如果设置了 CF_EFFECTS 标志, rgbColors 将指定初始文本颜色。 当 ChooseFont 成功返回时,此成员包含用户选择的文本颜色的 RGB 值。 若要创建 COLORREF 颜色值,请使用 RGB 宏。
lCustData
类型:LPARAM
系统传递给 由 lpfnHook 成员标识的挂钩过程的应用程序定义数据。 当系统将 WM_INITDIALOG 消息发送到挂钩过程时,消息的 lParam 参数是指向创建对话框时指定的 CHOOSEFONT 结构的指针。 挂钩过程可以使用此指针获取 lCustData 值。
lpfnHook
类型: LPCFHOOKPROC
指向 CFHookProc 挂钩过程的指针,该过程可以处理用于对话框的消息。 除非在 Flags 成员中设置了CF_ENABLEHOOK标志,否则将忽略此成员。
lpTemplateName
类型: LPCTSTR
hInstance 成员标识的模块中对话框模板资源的名称。 此模板将替换为标准对话框模板。 对于编号对话框资源, lpTemplateName 可以是 MAKEINTRESOURCE 宏返回的值。 除非在 Flags 成员中设置了CF_ENABLETEMPLATE标志,否则将忽略此成员。
hInstance
类型: HINSTANCE
如果在 Flags 成员中设置了CF_ENABLETEMPLATEHANDLE标志,则 hInstance 是包含对话框模板的内存对象的句柄。 如果设置了 CF_ENABLETEMPLATE 标志, 则 hInstance 是包含由 lpTemplateName 成员命名的对话框模板的模块的句柄。 如果未设置 CF_ENABLETEMPLATEHANDLE 或 CF_ENABLETEMPLATE ,则忽略此成员。
lpszStyle
类型: LPTSTR
样式数据。 如果指定 了CF_USESTYLE 标志, ChooseFont 将使用此缓冲区中的数据来初始化 “字体样式 ”组合框。 当用户关闭对话框时, ChooseFont 会将 “字体样式 ”组合框中的字符串复制到此缓冲区中。
nFontType
类型: WORD
ChooseFont 返回时所选字体的类型。 此成员可以是以下一个或多个值。
值 | 含义 |
---|---|
|
字体粗细为粗体。 此信息在 LOGFONT 结构的 lfWeight 成员中重复,等效于 FW_BOLD。 |
|
设置了斜体字体属性。 此信息在 LOGFONT 结构的 lfItalic 成员中重复。 |
|
字体是打印机字体。 |
|
字体粗细正常。 此信息在 LOGFONT 结构的 lfWeight 成员中重复,等效于 FW_REGULAR。 |
|
字体是屏幕字体。 |
|
该字体由图形设备界面 (GDI) 模拟。 |
___MISSING_ALIGNMENT__
nSizeMin
类型: INT
用户可选择的最小磅值。 仅当指定了 CF_LIMITSIZE 标志时,ChooseFont 才会识别此成员。
nSizeMax
类型: INT
用户可选择的最大磅值。 仅当指定了 CF_LIMITSIZE 标志时,ChooseFont 才会识别此成员。
注解
注意
commdlg.h 标头将 CHOOSEFONT 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名的使用与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
标头 | commdlg.h |
另请参阅
概念性
引用