Visual c++ 如何让用户保存到目录?

Visual c++ 如何让用户保存到目录?,visual-c++,file-io,mfc,Visual C++,File Io,Mfc,语言:C++ 开发环境:Microsoft Visual C++ 使用的库:MFC 问题:我正在创建一个大型首选项编辑工具,其中包含具有不同设置的对话框页面,供用户自定义。设置的每个“页面”都将写入自己的XML文件 用户将有两个选项:1)保存这些,系统将提示用户指定要保存的页面;2)全部保存,将每个页面保存到自己的XML文件中 对于全部保存功能,我希望用户只需指定一个目录即可保存所有文件。我相当确定我必须使用FolderBrowserDialog类,但我不确定如何使用。我认为它非常类似于Open

语言:C++

开发环境:Microsoft Visual C++

使用的库:MFC

问题:我正在创建一个大型首选项编辑工具,其中包含具有不同设置的对话框页面,供用户自定义。设置的每个“页面”都将写入自己的XML文件

用户将有两个选项:1)保存这些,系统将提示用户指定要保存的页面;2)全部保存,将每个页面保存到自己的XML文件中

对于全部保存功能,我希望用户只需指定一个目录即可保存所有文件。我相当确定我必须使用FolderBrowserDialog类,但我不确定如何使用。我认为它非常类似于OpenFile对话框或SaveFile对话框,其中一个参数指定保存到目录

我在MSDN上找到了这个类,但它没有多大帮助。任何帮助都将不胜感激

解决方案:我找到了一个有效的解决方案。这基本上是上面几个答案的组合,但对于将来寻求类似解决方案的人,我引用了页面。作者为创建目录选择器对话框所需的凌乱代码创建了一个包装类。谢谢你的建议。你们都帮助我朝着正确的方向前进。干杯


~Jon

查看结构和功能。后者实际上显示“保存文件”对话框。

查看结构和函数。后者实际上显示了“保存文件”对话框。

我认为要求用户保存“单个”页面很奇怪,我认为您应该将所有页面保存在一个文件中(嘿,但那只是我)

如果需要保存单个页面,则必须用一个小对话框提示用户,该对话框列出页面并让用户选择哪个页面;或者,您可以决定只保存已修改的页面

要选择文件夹,最简单的方法是使用ShBrowseForFolder(http://msdn.microsoft.com/en-us/library/bb762115(v=vs.85).aspx)


Max.

我认为要求用户保存“单个”页面很奇怪,我认为您应该将所有页面保存在一个文件中(嘿,但那只是我)

如果需要保存单个页面,则必须用一个小对话框提示用户,该对话框列出页面并让用户选择哪个页面;或者,您可以决定只保存已修改的页面

要选择文件夹,最简单的方法是使用ShBrowseForFolder(http://msdn.microsoft.com/en-us/library/bb762115(v=vs.85).aspx)


最大值使用
::SHBrowseForFolder()
。它显示了标准的“浏览文件夹”对话框(至少在Windows XP之前;我不知道Vista/7是否有新对话框)。

我个人使用它包装在一个类中,如图所示。

使用
::SHBrowseForFolder()
。它显示了标准的“浏览文件夹”对话框(至少在Windows XP之前;我不知道Vista/7是否有新对话框)。

我个人将其包装在一个类中使用,如图所示。

+1我打算自己建议使用
ShBrowseForFolder
函数。该工具支持的程序需要单独的文件。这是我必须这样做的唯一原因。因此,如果他们只想编辑一个文件(“Preferences1.xml”或其他文件),那么我希望他们可以选择,这样他们就不必填写其他所有内容。否则我会同意你:)哦,上帝,有没有更简单的方法?!我真的必须使用DLL吗?+1我正要建议自己使用
ShBrowseForFolder
函数。这个工具支持的程序需要单独的文件。这是我必须这样做的唯一原因。因此,如果他们只想编辑一个文件(“Preferences1.xml”或其他文件),那么我希望他们可以选择,这样他们就不必填写其他所有内容。否则我会同意你:)哦,上帝,有没有更简单的方法?!我真的必须使用DLL吗?我在SHBrowseForFolder的文档中看到,对于Vista及以上版本,建议使用“IFileDialog with the FOS_PICKFOLDERS”,我在SHBrowseForFolder的文档中看到,对于Vista及以上版本,建议使用“IFileDialog with the FOS_PICKFOLDERS”