如何自定义打开/保存文件对话框?

时间:2012-02-08 13:10:18

标签: c++ winapi visual-c++ dialog

我看到有些程序使用自定义打开/保存文件对话框,他们在那里添加了一些额外的按钮。

我该怎么做?

请注意,我想使用基本的打开/保存对话框,因此我不必重新创建它们,因此仍然是OS语言中的按钮。我只想在那里添加一些额外的按钮。

2 个答案:

答案 0 :(得分:1)

这应该对你有所帮助 Customizing common dialog controls

答案 1 :(得分:1)

  

更新:正如David Heffernan在下面指出的那样,这个答案适用于Vista之前的Windows平台。从Vista开始,你应该使用   而是IFileDialogCustomize COM接口。

基本上,您必须在传递给OFN_ENABLETEMPLATE / GetOpenFileName()的{​​{3}}结构中设置GetSaveFileName()标记。这允许您在相同结构的lpTemplateName成员中指定自定义对话框模板。此模板将用于构建对话框。有关所有详细信息,请参阅OPENFILENAME

请注意,如果您将自己的控件添加到对话框(在您的情况下为按钮),您应该 还设置OFN_ENABLEHOOK标志并在lpfnHook结构的OPENFILENAME成员中指定回调函数,以便您可以处理这些控件发送的消息。有关详细信息,请参阅Explorer-Style Custom Templates