お世話になります。
現在、次の環境にて開発を行っています。VC++.NET 2003 Windowsフォームアプリケーション(.NET)
でお聞きしたいのですが、現在、フォルダ選択ダイアログを使用しているのですが、表示されるデバイスを指定したいのですが、どうしてもうまくいきません。例えば、PCにCドライブ、Dドライブが存在した場合、フォルダ選択ダイアログに表示するドライブをCドライブ限定にしたいのです。
何か方法があれば是非教えていただきたいのですが、よろしくお願いします。
以上
> フォルダ選択ダイアログに表示するドライブをCドライブ限定にしたいのです。
TreeViewに表示されるモノを…というコトでいいのでしょうか?
Cドライブ以下にする。というコトで。
BROWSEINFO構造体のpidlRootメンバでルートが指定できますから、
ソレを指定したいドライブのモノにしてやればよろしいかと。
とりあえず、有名どころとして「猫でも」の276章と277章辺りが参考になるかと。
http://www.kumei.ne.jp/c_lang/sdk3/sdk_276.htm
http://www.kumei.ne.jp/c_lang/sdk3/sdk_277.htm
どうもありがとうございます。
少し足らなかったのですが、例えば、C:、D:、E:とドライブが存在する場合、C:、D:のみルートディレクトリとして指定したいのですが、BROWSEINFO構造体のpidlRootには複数のルートを指定できるのでしょうか?
> BROWSEINFO構造体のpidlRootには複数のルートを指定できるのでしょうか?
できません。
唯一だから「ルート」なのですし。
> 少し足らなかったのですが、例えば、C:、D:、E:とドライブが存在する場合、
> C:、D:のみルートディレクトリとして指定したいのですが、
> BROWSEINFO構造体のpidlRootには複数のルートを指定できるのでしょうか?
ルートの件に関してはシャノンさんからのレスがありますので…
特定のドライブ以下以外は[OK]ボタンを押せないようにする。
という方法ならあります。
BROWSEINFO構造体のulFlagsメンバでフックを有効に、
lpfnメンバでフック関数を指定して、
フック関数の方でBFFM_SELCHANGEDメッセージを受け取った際に判定、
BFFM_ENABLEOKメッセージで制御できます。
# キーワードで検察してみて下さい。
ツイート | ![]() |