ダイアログの表示位置


くにはる  2004-04-08 11:23:27  No: 112739  IP: [192.*.*.*]

親ウインドウ(フォーム)を持たないEXEからダイアログボックスを表示させるときに、ダイアログボックスの表示位置が左上になってしまいますが、表示位置を変える方法がわかりません。ご存知の方教えてください。ヽ(`▽´)/

編集 削除
へいぽ  2004-04-08 12:21:54  No: 112740  IP: [192.*.*.*]

> ダイアログボックス

何のダイアログボックスですか?
ファイルの保存、開くとかですか?

単純に考えると、フォーム上に CommonDialog コントロールを配置して
表示させるのが普通かと思いますが、フォームがないってことは、
CommonDialog コントロールを使わず API を使って表示させているのですか?

あるいは、ちょっと前に質問があったような気もしますが、
CommonDialog コントロールを動的に作成して、それを使っているのですか?

編集 削除
くにはる  2004-04-08 14:07:46  No: 112741  IP: [192.*.*.*]

ファイルの保存用にAPIを使って表示させています。

編集 削除
へいぽ  2004-04-08 14:50:17  No: 112742  IP: [192.*.*.*]

GetSaveFileName API と考えて良いですね。

一番簡単な方法は、フォームを1つ追加して、
ダイアログを表示させる直前に Load して、
そのフォームを中央に表示させ、
ファイルを指定したら、すぐ
フォームを Unload する方法ですかね。
参考:
http://www.kit.co.jp/vbit/QAndA01.htm

あるいは、サブプロシージャ化をして、
WM_INITDIALOG メッセージを受け取った時に
表示位置を SetWindowPos API などで
設定する方法ですかね。

編集 削除
くにはる  2004-04-08 16:08:01  No: 112743  IP: [192.*.*.*]

ダムーのフォームを使うことにしました。
ありがとうございました。

編集 削除