- ベストアンサー
CFileDialogでフォルダだけを選択させる
いままで組込みを中心にC/C++で業務を行ってきました。 今回、Windows7 SP1上でVC++ 2008のMFC環境で動作するツールを作成することになり 仕様としてCFileDialogなどのファイル選択画面でファイルではなく、フォルダのみを選択させるようにすることができないかと質問されましたが可能でしょうか? あるいは別の方法があるでしょうか?
- みんなの回答 (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
お礼
回答ありがとうございます。 以前に::SHBrowseForFolder() を活用された方が見えたので その方のアドバイスもあり無事解決しました。