Mic*_*vis 6 winapi folderbrowserdialog windows-7
在Vista中,我一直在使用一个IFileSaveDialog让用户选择"另存为"文件夹.例如,用户导出图像文件夹,需要选择新的或现有的目标文件夹.
简而言之,代码如下:
IFileSaveDialog* dialog; // created
dialog->SetOptions(FOS_PICKFOLDERS);
dialog->Show(NULL);
dialog->GetResult(&shellItem)
在Windows 7中,该FOS_PICKFOLDERS选项似乎已被禁止(并在API中标记为此选项).SetOptions呼叫的返回值是E_INVALIDARG.如果我使用IFileOpenDialog,我可以设置文件夹选项,但在选择不存在的文件夹时会提示用户输入错误(尽管我的设置标记表明不这样做).
是否有另一种方法可以让新手IFileDialog充当"保存文件夹"对话框?
[为了取消一些评论,SHBrowseForFolder API仍然存在,但对于我们的UI决策者来说仍然不是一个可接受的解决方案.]
原因可以在文档中找到:
FOS_PICKFOLDERS:显示"打开"对话框,提供文件夹而不是文件选项.
使用FOS_PICKFOLDERS进行"保存"从未被支持,但Vista没有强制执行.使用IFileOpenDialog代替,你很高兴.您正在选择现有文件夹(未指定要创建的文件夹),因此打开始终是正确的选择.
| 归档时间: | 
 | 
| 查看次数: | 1804 次 | 
| 最近记录: |