通用对话框具有默认模板,用于定义对话框中标准控件的数量,类型和位置。您可以定义一个自定义模板,让用户访问您的应用程序唯一的其他控件。
对于所有常见对话框,除了Explorer风格的“打开和另存为”对话框之外,您可以修改默认模板以创建替换默认模板的自定义模板。自定义模板定义了标准控件的类型和位置以及任何其他控件。
通过修改默认对话框模板创建自定义对话框模板时,请确保任何添加的控件的标识符是唯一的,并且不会与标准控件的标识符冲突。下表列出了每个常见对话框类型的默认模板文件的名称和包含文件。
对话框类型 | 模板文件 | 包含文件 |
颜色 | COLOR.DLG | COLORDLG.H |
找 | FINDTEXT.DLG | DLGS.H |
字形 | FONT.DLG | DLGS.H |
打开(多选) | FILEOPEN.DLG | DLGS.H |
打开(单选) | FILEOPEN.DLG | DLGS.H |
页面设置 | PRNSETUP.DLG | DLGS.H |
打印 | PRNSETUP.DLG | DLGS.H |
打印设置(已过时) | PRNSETUP.DLG | DLGS.H |
更换 | FINDTEXT.DLG | DLGS.H |
要启用自定义模板,必须在对话框的相应结构的旗成员中设置一个标志。如果模板是应用程序或动态链接库中的资源,请在旗成员中设置ENABLETEMPLATE标志,并使用结构的的hInstance和lpTemplateName成员来标识模块和资源名称。如果模板已经在内存中,请在旗成员中设置一个ENABLETEMPLATEHANDLE标志,并使用的hInstance成员来标识包含该模板的内存对象。
在大多数情况下,您还必须启用对话框的挂钩过程,以支持和处理自定义模板中其他控件的输入。
对于资源管理器样式的打开和另存为对话框,默认模板不可用于修改。相反,您的自定义模板定义了一个子对话框,其中仅包含要添加到标准对话框的项目。自定义模板还可以定义一个静态控件,该控件指定子对话框中标准控件集群的位置。有关详细信息,请参阅Explorer风格的自定义模板.