投稿者 neptune  (社会人) 投稿日時 2009/3/28 08:33:16
こんにちは


FolderBrowserDialog の機能拡張の仕方をご教示お願いします。
FolderBrowserDialog は初めて使います。

FolderBrowserDialogコントロールにTextBoxを実装してやろうと思うのですが、
どうも、プロパティとして用意されてなくDialogをHookしてやらなければならない
ということがわかりました。
で、キーワードとしてRunDialog HookProc等はMSDNから調べられて、

MSDNの解説には
///////////////////////以下引用/////////////////////////
継承クラスでは、特定のコモン ダイアログ ボックスを作成するために、ShowDialog を呼び出す
ことによって RunDialog を実装する必要があります。継承クラスでは、HookProc をオーバーライド
して、ダイアログ ボックスに対して特定のフック機能を実装することもできます。
///////////////////引用終わり////////////////////////////
と書いてあるんですが、使い方が良くわかりません。

「FolderBrowserDialog RunDialog HookProc」でググッても見たんですが、
どうもVBのサンプルも(日本語では)見当たらないようです。外国語も多分???
しかし、この程度のことなら誰もやってないはずないんですけどねぇ・・・


やはりSHBrowseForFolderでゴリゴリ書くしかないんでしょうか??
それなら
BIF_EDITBOX = &H10 
をflgに追加してやるということは理解してます。

しかしながら、FolderBrowserDialogのHWNDもAPIで取得しなければならないのか、
それとも、なにかMSDNに書いてない方法があるのかもわかりません。
プロパティにない事は確認してます。

恐らく、FolderBrowserDialogでも同様な処理が必要とは推測してますので、RunDialog HookProc
の使い方がわかれば何とかなるような気がします。


長くなったので纏めます。
目的としてはFolderBrowserDialogをHookしてflgにBIF_EDITBOXを追加したい。
質問事項は以下のようになります。

1.FolderBrowserDialogの RunDialog HookProcの使い方
2.FolderBrowserDialogのframeworkを使ったHWNDの取得の仕方
3.普通APIでゴリゴリやるもんなんでしょうか??

よろしくお願いします。