• ベストアンサー

CFileDialogでフォルダだけを選択させる

 いままで組込みを中心にC/C++で業務を行ってきました。  今回、Windows7 SP1上でVC++ 2008のMFC環境で動作するツールを作成することになり  仕様としてCFileDialogなどのファイル選択画面でファイルではなく、フォルダのみを選択させるようにすることができないかと質問されましたが可能でしょうか?  あるいは別の方法があるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • hitomura
  • ベストアンサー率48% (325/664)
回答No.1

VC++ 2008 以上ならば CShellManager::BrowseForFolder() が使えると思います。 http://msdn.microsoft.com/ja-jp/library/bb983670(v=vs.90).aspx ただし、CShellManager のクラス説明にこのオブジェクトを「手動で作成しないでください」と書かれています。その代わり、 CWinAppEx::GetShellManager() を呼べば適切なオブジェクトが取得できるようです。 http://msdn.microsoft.com/ja-jp/library/bb983147(v=vs.90).aspx なお、VC++ が 2005 以前の場合は ::SHBrowseForFolder() を使う必要があります。リファレンスは以下の URL ですが、実際の使い方は関数名で検索したらいくつかでてきますのでそちらを参考にしてください。……まあ、上のメソッドが使えるならばこちらの関数は使わなくてもいいのですが。 http://msdn.microsoft.com/en-us/library/windows/desktop/bb762115(v=vs.85).aspx

baysidehotel
質問者

お礼

回答ありがとうございます。 以前に::SHBrowseForFolder() を活用された方が見えたので その方のアドバイスもあり無事解決しました。

関連するQ&A