CHOOSEFONTA 结构 (commdlg.h)

包含 ChooseFont 函数用来初始化 字体 对话框的信息。 用户关闭对话框后,系统会返回有关此结构中用户选择的信息。

语法

typedef struct tagCHOOSEFONTA {
  DWORD        lStructSize;
  HWND         hwndOwner;
  HDC          hDC;
  LPLOGFONTA   lpLogFont;
  INT          iPointSize;
  DWORD        Flags;
  COLORREF     rgbColors;
  LPARAM       lCustData;
  LPCFHOOKPROC lpfnHook;
  LPCSTR       lpTemplateName;
  HINSTANCE    hInstance;
  LPSTR        lpszStyle;
  WORD         nFontType;
  WORD         ___MISSING_ALIGNMENT__;
  INT          nSizeMin;
  INT          nSizeMax;
} CHOOSEFONTA;

成员

lStructSize

类型:DWORD

结构的长度(以字节为单位)。

hwndOwner

类型:HWND

拥有对话框的窗口的句柄。 此成员可以是任何有效的窗口句柄,或者如果对话框没有所有者,则可以 NULL

hDC

类型:HDC

ChooseFont 函数忽略此成员。

Windows Vista 和 Windows XP/2000:打印机的设备上下文或信息上下文的句柄,其字体将列在对话框中。 仅当 标志 成员指定 CF_PRINTERFONTSCF_BOTH 标志时,才使用此成员;否则,将忽略此成员。

lpLogFont

类型:LPLOGFONT

指向 LOGFONT 结构的指针。 如果在 标志 成员中设置 CF_INITTOLOGFONTSTRUCT 标志并初始化其他成员,则 ChooseFont 函数使用与 logFONT 成员匹配的字体初始化对话框。 如果用户单击“确定”按钮 “确定”按钮,ChooseFont 根据用户的选择设置 LOGFONT 结构的成员。

iPointSize

类型:INT

所选字体的大小,单位为 1/10 磅。 ChooseFont 函数在用户关闭对话框后设置此值。

Flags

类型:DWORD

可用于初始化 字体 对话框的一组位标志。 当对话框返回时,它将设置这些标志来指示用户输入。 此成员可以是以下一个或多个值。

价值 意义
CF_APPLY
0x00000200L
使对话框显示 “应用”按钮。 应提供挂钩过程来处理 “应用”按钮的 WM_COMMAND 消息。 挂钩过程可以将 WM_CHOOSEFONT_GETLOGFONT 消息发送到对话框,以检索包含字体当前选择的结构的地址。
CF_ANSIONLY
0x00000400L
此标志已过时。 若要将字体选择限制为除使用 OEM 或符号字符集的脚本以外的所有脚本,请使用 CF_SCRIPTSONLY。 若要获取原始 CF_ANSIONLY 行为,请使用 CF_SELECTSCRIPT 并在 LOGFO NT指向的 lfCharSet 成员中指定 ANSI_CHARSET
CF_BOTH
0x00000003
字体枚举将忽略此标志。

Windows Vista 和 Windows XP/2000:使对话框列出可用的打印机和屏幕字体。 hDC 成员是与打印机关联的设备上下文或信息上下文的句柄。 此标志是 CF_SCREENFONTSCF_PRINTERFONTS 标志的组合。

CF_EFFECTS
0x00000100L
使对话框显示允许用户指定删除线、下划线和文本颜色选项的控件。 如果设置了此标志,则可以使用 rgbColors 成员指定初始文本颜色。 可以使用 lpLogFont 指向的结构的 lfStrikeOutlfUnderline 成员来指定罢工和下划线复选框的初始设置。 ChooseFont 可以使用这些成员返回用户的选择。
CF_ENABLEHOOK
0x00000008L
启用此结构的 lpfnHook 成员中指定的挂钩过程。
CF_ENABLETEMPLATE
0x00000010L
指示 hInstancelpTemplateName 成员指定用于代替默认模板的对话框模板。
CF_ENABLETEMPLATEHANDLE
0x00000020L
指示 hInstance 成员标识包含预加载对话框模板的数据块。 如果指定了此标志,系统将忽略 lpTemplateName 成员。
CF_FIXEDPITCHONLY
0x00004000L

ChooseFont 应枚举并允许仅选择固定间距字体。

CF_FORCEFONTEXIST
0x00010000L

ChooseFont 应指示用户尝试选择对话框中未列出的字体或样式时出现错误条件。

CF_INACTIVEFONTS
0x02000000L

ChooseFont 应额外显示设置为“在字体控制面板中隐藏”的字体。

Windows Vista 和 Windows XP/2000:Windows 7 之前不支持此标志。

CF_INITTOLOGFONTSTRUCT
0x00000040L

ChooseFont 应使用 lpLogFont 成员指向的结构来初始化对话框控件。

CF_LIMITSIZE
0x00002000L

ChooseFont 应仅选择由 nSizeMin 指定的区域内的字号,nSizeMax 成员。

CF_NOOEMFONTS
0x00000800L
CF_NOVECTORFONTS 标志相同。
CF_NOFACESEL
0x00080000L
使用 LOGFONT 结构初始化对话框控件时,使用此标志可阻止对话框显示字体名称组合框的初始选择。 当没有适用于文本选择的单个字体名称时,这非常有用。
CF_NOSCRIPTSEL
0x00800000L
禁用 脚本 组合框。 设置此标志时,LOGFONT 结构的 lfCharSet 成员设置为 DEFAULT_CHARSETChooseFont 返回。 此标志仅用于初始化对话框。
CF_NOSIMULATIONS
0x00001000L

ChooseFont 不应显示或允许选择字体模拟。

CF_NOSIZESEL
0x00200000L
使用结构初始化对话框控件时,使用此标志来阻止对话框显示 字号 组合框的初始选择。 当没有适用于文本选择的单个字号时,这非常有用。
CF_NOSTYLESEL
0x00100000L
使用 LOGFONT 结构初始化对话框控件时,使用此标志可阻止对话框显示 字体样式 组合框的初始选择。 当没有适用于文本选择的单个字体样式时,这非常有用。
CF_NOVECTORFONTS
0x00000800L

ChooseFont 不应允许矢量字体选择。

CF_NOVERTFONTS
0x01000000L
使 字体 对话框仅列出面向水平的字体。
CF_PRINTERFONTS
0x00000002
字体枚举将忽略此标志。

Windows Vista 和 Windows XP/2000:使对话框仅列出与设备上下文或由 hDC 成员标识的设备上下文关联的打印机支持的字体。 它还会导致字体类型说明标签显示在 字体 对话框底部。

CF_SCALABLEONLY
0x00020000L
指定 ChooseFont 应仅允许选择可缩放字体。 可缩放字体包括矢量字体、可缩放的打印机字体、TrueType 字体,以及其他技术缩放的字体。
CF_SCREENFONTS
0x00000001
字体枚举将忽略此标志。

Windows Vista 和 Windows XP/2000:使对话框仅列出系统支持的屏幕字体。

CF_SCRIPTSONLY
0x00000400L

ChooseFont 应允许为所有非 OEM 和符号字符集以及 ANSI 字符集选择字体。 这会取代 CF_ANSIONLY 值。

CF_SELECTSCRIPT
0x00400000L
在输入上指定时,仅显示 lfCharSet 成员 LOGFONT 结构中标识的字符集的字体。 不允许用户更改在 脚本 组合框中指定的字符集。
CF_SHOWHELP
0x00000004L
使对话框显示“帮助”按钮 hwndOwner 成员必须指定窗口才能接收当用户单击“帮助 ”按钮时对话框发送的 HELPMSGSTRING 注册的消息。
CF_TTONLY
0x00040000L

ChooseFont 应仅枚举并允许选择 TrueType 字体。

CF_USESTYLE
0x00000080L
lpszStyle 成员是指向缓冲区的指针,该缓冲区包含 ChooseFont 应用于初始化 字体样式 组合框的样式数据。 当用户关闭对话框时,ChooseFont 将用户选择的样式数据复制到此缓冲区。
注意 全球化应用程序时,应通过使用 lfWeightlfItalicLOGFONT 结构所指向 lpLogFont的成员来指定样式。 样式名称可能会根据系统用户界面语言而更改。
 
CF_WYSIWYG
0x00008000L
过时。 ChooseFont 忽略此标志。

Windows Vista 和 Windows XP/2000:ChooseFont 只允许选择打印机和显示器上可用的字体。 如果指定了此标志,还应指定 CF_SCREENSHOTSCF_PRINTERFONTSCF_BOTH 标志。

rgbColors

类型:COLORREF

如果设置了 CF_EFFECTS 标志,rgbColors 指定初始文本颜色。 ChooseFont 成功返回时,此成员包含用户选择的文本颜色的 RGB 值。 若要创建 COLORREF 颜色值,请使用 RGB 宏。

lCustData

类型:LPARAM

系统传递给由 lpfnHook 成员标识的挂钩过程的应用程序定义数据。 当系统将 WM_INITDIALOG 消息发送到挂钩过程时,消息的 lParam 参数是指向创建对话框时指定的 CHOOSEFONT 结构的指针。 挂钩过程可以使用此指针获取 lCustData 值。

lpfnHook

类型:LPCFHOOKPROC

指向 CFHookProc 挂钩过程的指针,该过程可以处理适用于对话框的消息。 除非 标志 成员中设置了 CF_ENABLEHOOK 标志,否则将忽略此成员。

lpTemplateName

类型:LPCTSTR

hInstance 成员标识的模块中的对话框模板资源的名称。 此模板替换为标准对话框模板。 对于编号对话框资源,lpTemplateName 可以是由 MAKEINTRESOURCE 宏 返回的值。 除非在 标志 成员中设置 CF_ENABLETEMPLATE 标志,否则将忽略此成员。

hInstance

类型:HINSTANCE

如果在 标志 成员中设置 CF_ENABLETEMPLATEHANDLE 标志,hInstance 是包含对话框模板的内存对象的句柄。 如果设置了 CF_ENABLETEMPLATE 标志,hInstance 是包含由 lpTemplateName 成员命名的对话框模板的模块的句柄。 如果未设置 CF_ENABLETEMPLATEHANDLECF_ENABLETEMPLATE,则忽略此成员。

lpszStyle

类型:LPTSTR

样式数据。 如果指定了 CF_USESTYLE 标志,ChooseFont 使用此缓冲区中的数据来初始化 字体样式 组合框。 当用户关闭对话框时,ChooseFont字体样式 组合框中的字符串复制到此缓冲区中。

nFontType

类型:WORD

ChooseFont 返回时,所选字体的类型。 此成员可以是以下一个或多个值。

价值 意义
BOLD_FONTTYPE
0x0100
字体粗细为粗体。 此信息在 LOGFONT 结构的 lfWeight 成员中重复,等效于 FW_BOLD
ITALIC_FONTTYPE
0x0200
设置斜体字体属性。 此信息在 LOGFONT 结构的 lfItalic 成员中重复。
PRINTER_FONTTYPE
0x4000
字体是打印机字体。
REGULAR_FONTTYPE
0x0400
字体粗细正常。 此信息在 LOGFONT 结构的 lfWeight 成员中重复,等效于 FW_REGULAR
SCREEN_FONTTYPE
0x2000
字体是屏幕字体。
SIMULATED_FONTTYPE
0x8000
该字体由图形设备界面(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

另请参阅

ChooseFont

通用对话框库

概念

MAKEINTRESOURCE

参考