「ファイルを開く」ダイアログでフォルダも選択

[戻る]
七夜 [E-Mail] 2003/09/26(金) 13:48:15
Windows2000、VC++6.0、SDKで開発しています。




 複数ファイルを選択して選択されたファイルのフォーマットを変換するツールを作っ
ています。


 現状ではダイアログ上のファイル選択ボタンを押すと::GetOpenFileName()で


「ファイルを開く」ダイアログが開き、そこからファイルを選択するようにしています


(複数ファイル選択可)。


 今度は、依頼元から、できればフォルダを選択してそのフォルダの下にあるファイルを


全て変換するようなことも可能にして欲しいといわれました。


 ファイル選択ボタンと別にフォルダ選択ボタンをつけて対応することはできるのですが、


今ひとつスマートではありません。できれば同じダイアログでファイルもフォルダも選択


可能なようにしたいです。


 ::SHBrowseForFolder()を使えばフォルダとファイルの両方選択するようにはできます


が、選択できるファイルは一つだけになってしまいます。::GetOpenFileName()を使って


複数ファイルのほかにフォルダも選択可能にするような方法はありませんか?あればその


方法を教えていただきたく。




よろしくお願いします。

sugar 2003/09/26(金) 14:44:37
自作するしかないような気がします。
ファイル選択ダイアログにフックプロシジャをかませば、何とかなるのかな…。

フォルダをダブルクリックしたら、それを選択したと解釈するの?
そのフォルダを開くと解釈するの?

dairygoods 2003/09/26(金) 15:01:43
カスタムテンプレートを使って「フォルダを選ぶ」
といったボタンを追加して、うまく処理すれば可能かもしれません。

七夜 [E-Mail] 2003/09/30(火) 10:59:39
[[解決]]
>sugarさん、dairygoodsさん
 体調崩していたため返事が遅くなって申し訳ありません。レスありがとうございました。

 やはり簡単に設定でなんとかするのはできなくて、自作するしかないんですね。
 とりあえずフォルダ選択用とファイル選択用を別々につくることで急場をしのぎました。
お二人のアドバイスはあとで時間かけて試してみようと思います。
(Windowsプログラムはまだ慣れていないのです(^^;)

>フォルダをダブルクリックしたら、それを選択したと解釈するの?
>そのフォルダを開くと解釈するの?
 開くと解釈するようになればと考えていました。dairygoodsさんの書いたように、
「フォルダ選択」ボタンが追加されてそれを押したときのみフォルダが選択されるような
イメージで。Machintoshだと時々見ますが、ああいうイメージでできないかなと思って
いました。

 とりあえず解決とします。どうもありがとうございました。

古いスレッドには追加発言できません。