C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: FolderBrowserDialogのフォーカスの移動


(過去ログ 51 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■28228 / inTopicNo.1)  FolderBrowserDialogのフォーカスの移動
  
□投稿者/ .SHO (131回)-(2008/11/21(Fri) 16:39:20)

分類:[C#] 

FolderBrowserDialog を表示すると、最初のフォーカスが「OKボタン」にあるため
SelectedPath で選択したフォルダはグレー表示になります。

最初のフォーカスを「OKボタン」ではなく TreeView にして、選択を示す色の付いた
状態にしたいのですがうまくいきません。

最初、HookProc をオーバライドして処理しようと試みましたが FolderBrowserDialog
がシールドされていて継承できません。

次に、APIで処理する事を考えたのですが、FolderBrowserDialog のウィンドウハンドル
が取れなくて行き詰りました。

何か良い方法はありますでしょうか?

引用返信 編集キー/
■28239 / inTopicNo.2)  Re[1]: FolderBrowserDialogのフォーカスの移動
□投稿者/ 渋木宏明(ひどり) (955回)-(2008/11/21(Fri) 18:41:49)
渋木宏明(ひどり) さんの Web サイト
> 次に、APIで処理する事を考えたのですが、FolderBrowserDialog のウィンドウハンドル
> が取れなくて行き詰りました。

自プロセス内の話なら、メッセージフックしてダイアログが開かれようとする瞬間を捕まえてみるとか。

あるいは、BrowseForFolder() API を使ってみるとか。
引用返信 編集キー/
■28241 / inTopicNo.3)  Re[2]: FolderBrowserDialogのフォーカスの移動
□投稿者/ .SHO (135回)-(2008/11/21(Fri) 18:52:39)
No28239 (渋木宏明(ひどり) さん) に返信

> 自プロセス内の話なら、メッセージフックしてダイアログが開かれようとする瞬間を捕まえてみるとか。

これは、ダイアログが開かれようとする瞬間の判断が面倒そうですね^^;
可能だと思うけど。

> あるいは、BrowseForFolder() API を使ってみるとか。

そうか!!!
FolderBrowserDialog をフックするのに API 使うぐらいなら
はなから BrowseForFolder() API 使えばいいですね。

これでやってみます。
ありがとうございました。
解決済み
引用返信 編集キー/
■28253 / inTopicNo.4)  Re[3]: FolderBrowserDialogのフォーカスの移動
□投稿者/ 渋木宏明(ひどり) (956回)-(2008/11/22(Sat) 00:31:33)
渋木宏明(ひどり) さんの Web サイト
>>自プロセス内の話なら、メッセージフックしてダイアログが開かれようとする瞬間を捕まえてみるとか。
>
> これは、ダイアログが開かれようとする瞬間の判断が面倒そうですね^^;

WM_CREATE, WM_INITDIALOG 辺りを待ち構えるのが常套手段です。
引用返信 編集キー/
■28258 / inTopicNo.5)  Re[4]: FolderBrowserDialogのフォーカスの移動
□投稿者/ .SHO (137回)-(2008/11/22(Sat) 11:28:35)
2008/11/22(Sat) 11:28:57 編集(投稿者)

No28253 (渋木宏明(ひどり) さん) に返信

> WM_CREATE, WM_INITDIALOG 辺りを待ち構えるのが常套手段です。

はい。
WM_INITDIALOG なら、他と区別できると思い、こちらでもやってみたところ
問題なく動きました。

ありがとうございます。

# それにしても、やっぱりきめ細かく制御するには
# API 使わないとダメなのが疲れます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -