SHBrowseForFolderを使用してフォルダ参照ダイアログを表示して
いるのですが、ダイアログが表示される位置がほかのウィンドウと
重なってしまいます。フォルダ参照ダイアログの表示位置を変更
したいのですが、設定方法がわかりません。どこに何を設定すれば
よろしいのでしょうか?
コールバックプロシージャで強引に操作する事ならできますょ。
UserMessageがBFFM_INITIALIZEDの時とかに?
MoveWindowで移動させたらどうでしょうか?
>>重なってしまいます。
の状態が何を指しているのか?
わからないですがSetWindowPosも効くはずなので試してみてください?
とりあえずMoveWindowは試してみたら行けてます。。
PS TBrowserInfoのhwndOwnerにセットしてる値が変って事は無いですか?
MoveWindowとSetWindowPosを試したみましたが初期表示の位置は変わりませんでした。
下記のようなものを追加したのですがだめでした。
MoveWindow(GetActiveWindow(),500,300,200,200,True);
ウィンドウハンドルの取得の仕方が間違ってるのでしょうか?
GetActiveWindowしてもフォルダ参照ダイアログの
ハンドルはとれませんょ…
BFFCALLBACK = function(Wnd: HWND; uMsg: UINT; lParam, lpData: LPARAM): Integer stdcall;
使ってますよね?
↑のコールバックプロシージャのWnd がダイアログのハンドルです
解決しました。さわ様ありあがとうございます。
他の方が書いたものをそのまま理解せずに使っていたので
勉強になりました。
ツイート | ![]() |