CHOOSEFONT结构包含ChooseFont函数用于初始化字体公共对话框的信息。用户关闭对话框后,系统会在此结构中返回有关用户选择的信息。
typedef struct { // cf
DWORD lStructSize;
HWND hwndOwner;
HDC hDC;
LPLOGFONT lpLogFont;
INT iPointSize;
DWORD Flags;
DWORD rgbColors;
LPARAM lCustData;
LPCFHOOKPROC lpfnHook;
LPCTSTR lpTemplateName;
HINSTANCE hInstance;
LPTSTR lpszStyle;
WORD nFontType;
WORD ___MISSING_ALIGNMENT__;
INT nSizeMin;
INT nSizeMax;
} CHOOSEFONT;
会员
lStructSize
指定结构的长度(以字节为单位)。
hwndOwner
标识拥有该对话框的窗口。该成员可以是任何有效的窗口句柄,如果对话框没有所有者,它可以为NULL。
hDC
标识将在对话框中列出其字体的打印机的设备上下文(或信息上下文)。只有旗成员指定了CF_PRINTERFONTS或CF_BOTH标志,才使用该成员。否则,该成员将被忽略。
lpLogFont
指向LOGFONT结构。如果在旗成员中设置CF_INITTOLOGFONTSTRUCT标志并初始化LOGFONT成员,则ChooseFont函数将以最接近的匹配字体初始化对话框。如果用户单击确定按钮,ChooseFont将根据用户的选择设置LOGFONT结构的成员。
iPointSize
指定所选字体的大小,单位为1/10。用户关闭对话框后,ChooseFont函数设置此值。
旗
您可以使用一组位标志来初始化“字体公共”对话框。当对话框返回时,它设置这些标志以指示用户的输入。该成员可以是以下标志的组合:
旗 | 含义 |
CF_APPLY | 使对话框显示应用按钮。您应该提供一个钩子程序来处理应用按钮的WM_COMMAND消息。挂钩过程可以将WM_CHOOSEFONT_GETLOGFONT消息发送到对话框,以检索包含当前字体选择的LOGFONT结构的地址。 |
CF_ANSIONLY | 这个标志已经过时了。要将字体选择限制为除使用OEM或Symbol字符集的脚本之外的所有脚本,请使用CF_SCRIPTSONLY。要获得Windows 3.1 CF_ANSIONLY行为,请使用CF_SELECTSCRIPT并在【lpLogFont】 【lpLogFont】指向的LOGFONT结构的lfCharSet成员中指定ANSI_CHARSET。 |
CF_BOTH | 使对话框列出可用的打印机和屏幕字体。hDC成员标识与打印机相关联的设备上下文(或信息上下文)。该标志是CF_SCREENFONTS和CF_PRINTERFONTS标志的组合。 |
CF_TTONLY | 指定ChooseFont仅应枚举并允许选择TrueType字体。 |
CF_EFFECTS | 使对话框显示允许用户指定删除,下划线和文本颜色选项的控件。如果设置了此标志,则可以使用rgbColors成员指定初始文本颜色。您可以使用lpLogFont指向的LOGFONT结构的lfStrikeOut和Causes the dialog box to display the controls that allow the user to specify strikeout, underline, and text color options.成员指定删除和下划线复选框的初始设置。ChooseFont可以使用这些成员返回用户的选择。 |
CF_ENABLEHOOK | 启用此结构的lpfnHook成员中指定的挂接过程。 |
CF_ENABLETEMPLATE | 表示的hInstance和lpTemplateName成员指定要用于替换默认模板的对话框模板。 |
CF_ENABLETEMPLATEHANDLE | 表示的hInstance成员标识包含预加载对话框模板的数据块。如果指定了此标志,系统将忽略lpTemplateName成员。 |
CF_FIXEDPITCHONLY | 指定ChooseFont应仅选择固定间距字体。 |
CF_FORCEFONTEXIST | 如果用户尝试选择不存在的字体或样式,则ChooseFont应该指示错误条件。 |
CF_INITTOLOGFONTSTRUCT | 指定ChooseFont应使用lpLogFont成员指向的LOGFONT结构来初始化对话框控件。 |
CF_LIMITSIZE | 指定ChooseFont应仅选择nSizeMin和nSizeMax成员指定范围内的字体大小。 |
CF_NOOEMFONTS | 与CF_NOVECTORFONTS标志相同。 |
CF_NOFACESEL | 当使用LOGFONT结构初始化对话框控件时,请使用此标志来选择性地阻止对话框显示字体名称组合框的初始选择。当没有单个字体名称适用于文本选择时,这是有用的。 |
CF_NOSCRIPTSEL | 禁用脚本组合框。设置此标志时,LOGFONT结果的lfCharSet成员将在ChooseFont返回时设置为DEFAULT_CHARSET。该标志仅用于初始化对话框。 |
CF_NOSTYLESEL | 当使用LOGFONT结构初始化对话框控件时,请使用此标志来选择性地阻止对话框显示字体样式组合框的初始选择。当没有单个字体样式适用于文本选择时,这是有用的。 |
CF_NOSIZESEL | 当使用LOGFONT结构初始化对话框控件时,请使用此标志来选择性地阻止该对话框显示字体大小组合框的初始选择。当没有单个字体大小适用于文本选择时,这是有用的。 |
CF_NOSIMULATIONS | 指定ChooseFont不应允许图形设备界面(GDI)字体模拟。 |
CF_NOVECTORFONTS | 指定ChooseFont不允许矢量字体选择。 |
CF_NOVERTFONTS | 使“字体”对话框仅列出水平定向的字体。 |
CF_PRINTERFONTS | 使对话框仅列出与hDC成员标识的设备上下文(或信息上下文)相关联的打印机支持的字体。 |
CF_SCALABLEONLY | 指定ChooseFont应仅允许选择可缩放字体。(可缩放字体包括矢量字体,可伸缩打印机字体,TrueType字体和其他技术缩放的字体。) |
CF_SCREENFONTS | 使对话框仅列出系统支持的屏幕字体。 |
CF_SCRIPTSONLY | 指定ChooseFont应允许为所有非OEM和符号字符集以及ANSI字符集选择字体。这取代了CF_ANSIONLY值。 |
CF_SELECTSCRIPT | 当在输入中指定时,只显示LOGFONT结构的lfCharSet成员中识别的字符集的字体。不允许用户更改脚本组合框中指定的字符集。 |
CF_SHOWHELP | 导致对话框显示帮助按钮。hwndOwner成员必须指定接收当用户单击“帮助”按钮时对话框发送的HELPMSGSTRING注册消息的窗口。 |
CF_USESTYLE | 指定Pointer to a buffer that contains style data.成员指向包含ChooseFont应用于初始化字体样式组合框的样式数据的缓冲区。当用户关闭对话框时,ChooseFont将用户选择的样式数据复制到此缓冲区。 |
CF_WYSIWYG | 指定ChooseFont只允许在打印机和显示器上选择可用的字体。如果指定了此标志,则还应指定CF_BOTH和CF_SCALABLEONLY标志。 |
rgbColors
如果设置了CF_EFFECTS标志,则rgbColors指定初始文本颜色。当ChooseFont成功返回时,此成员包含用户选择的文本颜色的RGB值。
lCustData
指定系统传递给由lpfnHook成员标识的挂接过程的应用程序定义的数据。当系统向挂钩过程发送WM_INITDIALOG消息时,消息的【lParam的】参数是指向创建对话框时指定的CHOOSEFONT结构的指针。挂钩过程可以使用此指针获取lCustData值。
lpfnHook
指向CFHookProc挂接过程的指针,可以处理用于该对话框的消息。除非在旗成员中设置了CF_ENABLEHOOK标志,否则此成员将被忽略。
lpTemplateName
指向由的hInstance成员标识的模块中的对话框模板资源的以空字符结尾的字符串。此模板代替标准对话框模板。对于编号的对话框资源,lpTemplateName可以是MAKEINTRESOURCE宏返回的值。除非在旗成员中设置了CF_ENABLETEMPLATE标志,否则此成员将被忽略。
的hInstance
如果在旗成员中设置了CF_ENABLETEMPLATEHANDLE标志,则的hInstance是包含对话框模板的内存对象的句柄。如果设置了CF_ENABLETEMPLATE标志,的hInstance标识包含由lpTemplateName成员命名的对话框模板的模块。如果没有设置CF_ENABLETEMPLATEHANDLE和CF_ENABLETEMPLATE,则忽略该成员。
Pointer to a buffer that contains style data.
指向包含样式数据的缓冲区。如果指定了CF_USESTYLE标志,ChooseFont使用此缓冲区中的数据来初始化字体样式组合框。当用户关闭对话框时,ChooseFont将字体样式组合框中的字符串复制到此缓冲区中。
nFontType
指定ChooseFont返回时所选字体的类型。该成员可以是以下值的组合:
值 | 含义 |
BOLD_FONTTYPE | 字体重量是粗体。此信息在LOGFONT结构的lfWeight成员中重复,相当于FW_BOLD。 |
ITALIC_FONTTYPE | 斜体字体属性设置。此信息在LOGFONT结构的The italic font attribute is set.成员中重复。 |
PRINTER_FONTTYPE | 字体是打印机字体。 |
REGULAR_FONTTYPE | 字体重量正常。此信息在LOGFONT结构的lfWeight成员中重复,相当于FW_REGULAR。 |
SCREEN_FONTTYPE | 字体是屏幕字体。 |
SIMULATED_FONTTYPE | 字体由图形设备接口(GDI)进行模拟。 |
nSizeMin
指定用户可以选择的最小点大小。ChooseFont只有在指定CF_LIMITSIZE标志时,才能识别此成员。
nSizeMax
指定用户可以选择的最大点大小。ChooseFont只有在指定CF_LIMITSIZE标志时,才能识别此成员。
也可以看看