通用对话框库

通用对话框库包含一组用于执行常见应用程序任务(例如打开文件、选择颜色值和打印文档)的对话框。 通过通用对话框,可对应用程序的用户界面实现一致的方法。 这减少了用户在学习应用程序的用户界面行为时花费的工作量。

本部分介绍常见对话框,其中包括 “打开 ”和“ 另存为 文件”对话框; “查找替换 ”编辑对话框;“ 打印”、“ 打印设置”、“ 打印属性表”和“ 页面设置 ”打印对话框;和“ 颜色 ”和“ 字体 ”对话框。

注意

从 Windows Vista 开始, “打开 ”和“ 另存为 ”常用对话框已被 “通用项”对话框取代。 建议使用通用项对话框 API,而不是通用对话框库中的这些对话框。

本节内容

名称 说明
常见对话框类型 讨论不同的对话框。
通用对话框初始化标志 讨论如何使用标志来修改常见对话框的行为和外观。
自定义常用对话框 讨论如何使用常用对话框。
使用通用对话框 涵盖调用常见对话框的任务。
通用对话框参考 包含 API 引用。

函数

名称 说明
CCHookProc 接收用于 “颜色 ”对话框的默认对话框过程的消息或通知。 这是与 ChooseColor 函数一起使用的应用程序定义或库定义的回调函数。
CFHookProc 接收适用于 “字体 ”对话框的默认对话框过程的消息或通知。 这是与 ChooseFont 函数一起使用的应用程序定义或库定义的回调过程。
ChooseColor 创建允许用户选择颜色的“ 颜色 ”对话框。
ChooseFont 创建“ 字体 ”对话框,使用户能够选择逻辑字体的属性。 这些属性包括字体系列和关联的字体样式、点大小、效果 (下划线、删除线和文本颜色) ,以及脚本 (或字符集) 。
CommDlgExtendedError 返回常见对话框错误代码。 此代码指示执行其中一个常见对话框函数期间发生的最新错误。
FindText 创建系统定义的无模式 查找 对话框,该对话框允许用户指定要搜索的字符串,以及搜索文档中的文本时要使用的选项。
FRHookProc 接收用于 “查找 ”或“ 替换 ”对话框的默认对话框过程的消息或通知。 这是与 FindTextReplaceText 函数一起使用的应用程序定义或库定义的回调函数。
GetFileTitle 检索指定文件的名称。
GetOpenFileName 创建一个“ 打开 ”对话框,该对话框允许用户指定要打开的文件或文件集的驱动器、目录和名称。
GetSaveFileName 创建“ 保存 ”对话框,该对话框允许用户指定要保存的文件的驱动器、目录和名称。
OFNHookProc 接收从对话框发送的通知消息。 该函数还接收通过指定子对话框模板定义的任何其他控件的消息。 这是应用程序定义的或库定义的回调函数,用于资源管理器样式的 “打开 ”和“ 另存为 ”对话框。
OFNHookProcOldStyle 接收用于对话框过程的消息或通知。 这是与 “打开 ”和“ 另存为 ”对话框一起使用的应用程序定义或库定义的回调函数。
PagePaintHook 接收允许您在“ 页面设置 ”对话框中自定义示例页的绘图的消息。 这是与 PageSetupDlg 函数一起使用的应用程序定义或库定义的回调函数。
PageSetupDlg 创建“ 页面设置 ”对话框,使用户能够指定打印页面的属性。 这些属性包括纸张大小和源、页面方向 (纵向或横向) 以及页边距的宽度。
PageSetupHook 接收用于 “页面设置 ”对话框的默认对话框过程的消息或通知。 这是与PageSetupDlg函数一起使用的应用程序定义或库定义的回调函数。
PrintDlg 显示“打印”对话框。 “ 打印 ”对话框使用户能够指定特定打印作业的属性。
PrintDlgEx 显示一个 Print 属性表,该属性表使用户能够指定特定打印作业的属性。“打印”属性表有一个“ 常规 ”页,其中包含类似于“ 打印 ”对话框的控件。 属性表还可以具有其他特定于应用程序的属性页和特定于驱动程序的属性页以及 “常规 ”页。
PrintHookProc 接收用于 “打印 ”对话框的默认对话框过程的消息或通知。 这是与 PrintDlg 函数一起使用的应用程序定义或库定义的回调函数。
ReplaceText 创建一个系统定义的无模式对话框,该对话框允许用户指定要搜索的字符串和替换字符串,以及用于控制查找和替换操作的选项。
SetupHookProc PrintDlg 函数一起使用的应用程序定义或库定义的回调函数。 挂钩过程接收用于 “打印设置 ”对话框的默认对话框过程的消息或通知。

接口

名称 说明
IPrintDialogCallback 提供使应用程序能够在显示 Print 属性表时从 PrintDlgEx 函数接收通知和消息的方法。
IPrintDialogServices 提供使应用程序能够使用 PrintDlgEx 函数检索有关当前所选打印机的信息的方法。

消息

名称 说明
CDM_GETFILEPATH 检索资源管理器样式的 “打开 ”或“ 另存为 ”对话框中所选文件的路径和文件名。 对话框必须已使用 OFN_EXPLORER 标志创建;否则,消息将失败。
CDM_GETFOLDERIDLIST 检索与资源管理器样式的 “打开 ”或“ 另存为 ”对话框当前打开的文件夹对应的项目标识符列表的地址。 对话框必须已使用 OFN_EXPLORER 标志创建;否则,消息将失败。
CDM_GETFOLDERPATH 检索资源管理器样式的“ 打开另存为 ”对话框当前打开的文件夹或目录的路径。 对话框必须已使用 OFN_EXPLORER 标志创建;否则,消息将失败。
CDM_GETSPEC 检索文件名 (不包括资源管理器样式的 “打开 ”或“ 另存为 ”对话框中当前所选文件的路径) 。 对话框必须已使用 OFN_EXPLORER 标志创建;否则,消息将失败。
CDM_HIDECONTROL 隐藏资源管理器样式的 “打开 ”或“ 另存为 ”对话框中的指定控件。 对话框必须已使用 OFN_EXPLORER 标志创建;否则,消息将失败。
CDM_SETCONTROLTEXT 在“资源管理器”样式的“ 打开 ”或“ 另存为 ”对话框中设置指定控件的文本。 对话框必须已使用 OFN_EXPLORER 标志创建;否则,消息将失败。
CDM_SETDEFEXT 为“资源管理器”样式的“ 打开 ”或“ 另存为 ”对话框设置默认文件扩展名。 对话框必须已使用 OFN_EXPLORER 标志创建;否则,消息将失败。
SETRGBSTRING “颜色”对话框 CCHookProc 的挂钩过程可以将 SETRGBSTRING 注册的消息发送到对话框以设置当前颜色选择。
WM_CHOOSEFONT_GETLOGFONT 应用程序将 WM_CHOOSEFONT_GETLOGFONT 消息发送到“ 字体 ”对话框,以检索有关用户当前字体选择的信息。
WM_CHOOSEFONT_SETFLAGS 应用程序将 WM_CHOOSEFONT_SETFLAGS 消息发送到“ 字体 ”对话框,以设置对话框的显示选项。
WM_CHOOSEFONT_SETLOGFONT 应用程序将 WM_CHOOSEFONT_SETLOGFONT 消息发送到“ 字体 ”对话框,以设置当前逻辑字体信息。

通知

名称 说明
CDN_FILEOK 当用户指定文件名并单击“确定”按钮时,由资源管理器样式的“打开”或“另存为”对话框发送。
CDN_FOLDERCHANGE 打开新文件夹时,由资源管理器样式的“ 打开 ”或“ 另存为 ”对话框发送。
CDN_HELP 当用户单击“帮助”按钮时,由资源管理器样式的“打开”或“另存为”对话框发送。
CDN_INCLUDEITEM “打开 ”或“ 另存为 ”对话框发送,以确定对话框是否应在 shell 文件夹的项目列表中显示项。 当用户打开文件夹时,对话框会针对文件夹中的每一项发送 CDN_INCLUDEITEM 通知。 仅当创建对话框时设置了 OFN_ENABLEINCLUDENOTIFY 标志时,对话框才会发送此通知。
CDN_INITDONE 当系统完成在对话框中排列控件时,由资源管理器样式的“ 打开 ”或“ 另存为 ”对话框发送。 系统移动标准控件,为子对话框的控件腾出空间。
CDN_SELCHANGE 当显示当前打开的文件夹或目录内容的列表框中的选择发生更改时,由资源管理器样式的“ 打开 ”或“ 另存为 ”对话框发送。
CDN_SHAREVIOLATION 当用户单击“确定”按钮且所选文件发生网络共享冲突时,由资源管理器样式的“打开”或“另存为”对话框发送。
CDN_TYPECHANGE 当用户从文件类型组合框中选择新文件类型时,由资源管理器样式的“ 打开 ”或“ 另存为 ”对话框发送。
COLOROKSTRING 当用户选择颜色并单击“确定”按钮时,“颜色”对话框会将 COLOROKSTRING 注册的消息发送到挂钩过程 CCHookProc。 挂钩过程可以接受颜色并允许对话框关闭,或拒绝颜色并强制对话框保持打开状态。
FILEOKSTRING 当用户指定文件名并单击“确定”按钮时,“打开另存为”对话框会将 FILEOKSTRING 注册的消息发送到挂钩过程 OFNHookProc。 挂钩过程可以接受文件名并允许对话框关闭,或者拒绝文件名并强制对话框保持打开状态。
FINDMSGSTRING 当用户单击“查找下一个”、“替换”或“全部替换”按钮或关闭对话框时,“查找替换”对话框会将 FINDMSGSTRING 注册的消息发送到其所有者窗口的窗口过程。
HELPMSGSTRING 当用户单击“帮助”按钮时,常见对话框会将 HELPMSGSTRING 注册的消息发送到其所有者窗口的窗口过程。
LBSELCHSTRING 当对话框的任何列表框或组合框中的选择发生更改时,“ 打开 ”或“ 另存为 ”对话框会将 LBSELCHSTRING 注册的消息发送到挂钩过程。
SHAREVISTRING 如果用户单击“确定”按钮时所选文件发生共享冲突,“打开”或“另存为”对话框会将 SHAREVISTRING 注册消息发送到挂钩过程 OFNHookProc
WM_PSD_ENVSTAMPRECT 通知 PagePaintHook 页面设置对话框的挂钩过程,该对话框即将绘制示例页的信封戳矩形。
WM_PSD_FULLPAGERECT 通知 PagePaintHook 挂钩过程示例页面矩形在“ 页面设置 ”对话框中的坐标。 对话框在即将绘制示例页的内容时发送此消息。
WM_PSD_GREEKTEXTRECT 通知 “页面设置 ”对话框 PagePaintHook 的挂钩过程,该对话框即将在示例页面的边距矩形内绘制希腊文本。
WM_PSD_MARGINRECT 通知 PagePaintHook 页面设置对话框的挂钩过程,该对话框将绘制示例页的边距矩形。
WM_PSD_MINMARGINRECT 通知 PagePaintHook 挂钩过程示例页中边距矩形的坐标。 “页面设置”对话框在即将绘制示例页的内容时发送此消息。
WM_PSD_PAGESETUPDLG 通知 PagePaintHook 挂钩过程 “页面设置 ”对话框即将绘制示例页面的内容。 挂钩过程可以使用此消息执行与绘制示例页面内容相关的初始化任务。
WM_PSD_YAFULLPAGERECT 通知 “页面设置 ”对话框 PagePaintHook 的挂钩过程,该对话框将绘制信封示例页的寄信人地址部分。

结构

名称 说明
CHOOSECOLOR 包含 ChooseColor 函数用于初始化 “颜色 ”对话框的信息。 用户关闭对话框后,系统会返回有关用户在此结构中选择的信息。
CHOOSEFONT 包含 ChooseFont 函数用于初始化 “字体 ”对话框的信息。 用户关闭对话框后,系统会返回有关用户在此结构中选择的信息。
DEVNAMES 包含标识打印机的驱动程序、设备和输出端口名称的字符串。 PrintDlgExPrintDlg 函数使用这些字符串来初始化系统定义的打印属性表打印对话框。 当用户关闭属性表或对话框时,将在此结构中返回有关所选打印机的信息。
FINDREPLACE 包含 FindTextReplaceText 函数用于初始化 “查找 ”和“ 替换 ”对话框的信息。 FINDMSGSTRING 注册的消息使用此结构将用户的搜索或替换输入传递到“查找”或“替换”对话框的所有者窗口。
OFNOTIFY Ccontains 有关发送到 OFNHookProc 挂钩过程的“打开”或“另存为”对话框的WM_NOTIFY消息的信息。 WM_NOTIFY消息的 lParam 参数是指向 OFNOTIFY 结构的指针。
OFNOTIFYEX 包含有关 CDN_INCLUDEITEM 通知消息的信息。
OPENFILENAME 包含 GetOpenFileNameGetSaveFileName 函数用于初始化 “打开 ”或“ 另存为 ”对话框的信息。 用户关闭对话框后,系统会返回有关此结构中用户选择的信息。
OPENFILENAME_NT4 OPENFILENAME 相同,_WIN32_WINNT设置为 0x0400。
PAGESETUPDLG 包含 PageSetupDlg 函数用于初始化 “页面设置 ”对话框的信息。 用户关闭对话框后,系统会返回有关此结构中用户定义的页面参数的信息。
PRINTDLG 包含 PrintDlg 函数用于初始化 “打印”对话框的信息。 用户关闭对话框后,系统会使用此结构返回有关用户选择的信息。
PRINTDLGEX 包含 PrintDlgEx 函数用于初始化 Print 属性表的信息。 用户关闭属性表后,系统使用此结构返回有关用户选择的信息。
PRINTPAGERANGE 指定打印作业中的页面范围。 一个打印作业可以有多个页面范围。 调用 PrintDlgEx 函数时,此信息在 PRINTDLGEX 结构中提供。