包含 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

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

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

使对话框显示允许用户指定删除线、下划线和文本颜色选项的控件。 如果设置了此标志,则可以使用 rgbColors 成员指定初始文本颜色。 可以使用 lpLogFont 指向的结构的 lfStrikeOutlfUnderline 成员来指定罢工和下划线复选框的初始设置。 ChooseFont 可以使用这些成员返回用户的选择。 lpszStyle 成员是指向缓冲区的指针,该缓冲区包含 ChooseFont 应用于初始化 字体样式 组合框的样式数据。 当用户关闭对话框时,ChooseFont 将用户选择的样式数据复制到此缓冲区。 注意 全球化应用程序时,应通过使用 lfWeightlfItalicLOGFONT 结构所指向 lpLogFont的成员来指定样式。 样式名称可能会根据系统用户界面语言而更改。

类型: 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_ENABLETEMPLATEHANDLE CF_ENABLETEMPLATE ,则忽略此成员。

lpszStyle

类型: LPTSTR

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

nFontType

类型: WORD

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

commdlg.h 标头将 CHOOSEFONT 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的 约定。