自定义旧式对话框

【勇芳软件工作室】汉化HomePreviousNext

您可以通过提供接收默认对话框过程的消息或通知的OFNHookProcOldStyle挂接过程来自定义旧式打开或另存为对话框。您还可以提供自定义模板来替代默认模板。与老式对话框一起使用的挂钩过程和模板与其他常用对话框使用的钩子过程和模板类似。有关详细信息,请参阅通用对话框的挂钩程序自定义模板.

要为旧式打开或另存为对话框启用挂钩过程,请在创建对话框时使用OPENFILENAME结构。在成员中设置OFN_ENABLEHOOK标志,并在lpfnHook成员中指定OFNHookProcOldStyle挂钩过程的地址。对话框过程向挂钩过程发送WM_INITDIALOG消息,其中【lParam的】参数设置为用于初始化对话框的OPENFILENAME结构的地址。

您可以使用OPENFILENAME结构来指定“打开”或“另存为”对话框的自定义模板,以用于替换默认模板。如果您的自定义模板是应用程序或动态链接库中的资源,请在成员中设置OFN_ENABLETEMPLATE标志,并使用结构的的hInstancelpTemplateName成员来标识模块和资源名称。如果您的自定义模板已经在内存中,请设置OFN_ENABLETEMPLATEHANDLE标志,并使用的hInstance成员来标识包含该模板的内存对象。通过修改FILEOPEN.DLG文件中指定的默认模板来创建自定义模板。在DLGS.H文件中定义了默认查找和替换对话框模板中使用的控制标识符。

默认情况下,GetOpenFileNameGetSaveFileName功能显示资源管理器样式的对话框。如果要显示旧样式的对话框,则必须提供OFNHookProcOldStyle钩子过程,并确保在OPENFILENAME结构的成员中未设置OFN_EXPLORER标志。

如果设置了OFN_EXPLORER标志,则系统会将钩子过程或自定义模板视为资源管理器样式的自定义。有关自定义资源管理器样式对话框的信息,请参阅Explorer风格的自定义模板.