フォルダ参照ダイアログの表示位置について

解決


まきむら  2004-06-21 19:50:37  No: 9531

SHBrowseForFolderを使用してフォルダ参照ダイアログを表示して
いるのですが、ダイアログが表示される位置がほかのウィンドウと
重なってしまいます。フォルダ参照ダイアログの表示位置を変更
したいのですが、設定方法がわかりません。どこに何を設定すれば
よろしいのでしょうか?


さわ  2004-06-22 02:56:35  No: 9532

コールバックプロシージャで強引に操作する事ならできますょ。
UserMessageがBFFM_INITIALIZEDの時とかに?
MoveWindowで移動させたらどうでしょうか?
>>重なってしまいます。
の状態が何を指しているのか?
わからないですがSetWindowPosも効くはずなので試してみてください?
とりあえずMoveWindowは試してみたら行けてます。。

PS TBrowserInfoのhwndOwnerにセットしてる値が変って事は無いですか?


まきむら  2004-06-22 03:41:39  No: 9533

MoveWindowとSetWindowPosを試したみましたが初期表示の位置は変わりませんでした。
下記のようなものを追加したのですがだめでした。

MoveWindow(GetActiveWindow(),500,300,200,200,True);

ウィンドウハンドルの取得の仕方が間違ってるのでしょうか?


さわ  2004-06-22 03:52:01  No: 9534

GetActiveWindowしてもフォルダ参照ダイアログの
ハンドルはとれませんょ…
BFFCALLBACK = function(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): Integer stdcall;
使ってますよね?
↑のコールバックプロシージャのWnd  がダイアログのハンドルです


まきむら  2004-06-22 04:04:04  No: 9535

解決しました。さわ様ありあがとうございます。
他の方が書いたものをそのまま理解せずに使っていたので
勉強になりました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加