4

ファイルを保存する新しいフォルダーを選択するダイアログを作成しようとしています。IFileOpenDialogクラスは、新しいフォルダーを選択できないことを除けば、うまく機能します。

つまり、ダイアログの下部にある "Folder: C:\existings\new-folder" は、次のメッセージをポップアップ表示します。

new-folder
パスが存在しません。
パスを確認して、再試行してください。

これが私が持っているコードです:

IFileDialog* fileDialog
CoCreateInstance(CLSID_FileOpenDialog, NULL, CLSCTX_INPROC_SERVER, 
    IID_PPV_ARGS(&fileDialog));

DWORD options;
fileDialog->GetOptions(&options);

options &= ~FOS_FILEMUSTEXIST;  
options &= ~FOS_PATHMUSTEXIST;
fileDialog->SetOptions(options | FOS_PICKFOLDERS);

fileDialog->Show(parentWindow);

ポインタやハックをいただければ幸いです。ありがとう!


この他の質問からマイケルを引用するには:

[いくつかのコメントを避けるために、SHBrowseForFolder API はまだ存在しますが、UI 決定者にとって受け入れられるソリューションではありません。]

ここでも同じことが当てはまります...

4

2 に答える 2

1

CLSID_FileOpenDialogの代わりにCLSID_FileSaveDialogを使用したいと思います。また、基本クラスのIFileDialogに加えて、IFileSaveDialogを使用することもできます。

于 2011-12-01T12:12:37.487 に答える
1

フォルダーを選択しているときは、フォルダー ピッカー ダイアログを使用できます。これには、適切なフラグが付けられており、下部に「作成」ボタンがあり、存在しないパスを指定できるテキスト エントリがあります。

于 2011-12-01T09:22:30.433 に答える