ウインドウを最前面にするには?

解決


show  2003-03-29 21:23:02  No: 51216  IP: [192.*.*.*]

VC、MFCで、あるダイアログウインドを表示するdllを作成しています。そのウインドウは常に最前面表示設定、モーダル型ウインドウ設定、最小化最大化できない設定にしてあります。それをプログラム中から呼び出した時、あるプログラムに限り、1回目の呼び出し時に最前面にならず、最小化状態で現れるのです。2回目以降の呼び出し時には正常に最前面ウインドウで表示されます。色々なプログラムから呼び出して試したのですが、その一つのプログラムだけに限りうまくいきません。そのプログラム自体はソース公開等をして頂けないものなので、解決法ではなくてもいいので、何か原因を思いつく方レスをお願い致します。

編集 削除
ryotaro331  URL  2003-03-30 23:28:10  No: 51217  IP: [192.*.*.*]

ウインドウのハンドルを正しく取得できていないのでは?

編集 削除
show  2003-03-30 23:43:43  No: 51218  IP: [192.*.*.*]

改めていろいろと試しました。が、そんな感じではないみたいですね。
ですが、レスありがとうございます。
また思いついたらよろしくお願いします。

編集 削除
DotL  2003-03-31 21:18:49  No: 51219  IP: [192.*.*.*]

case WM_INITDIALOG:
        ・
        ・
 SetForeGroundWindow(ダイアログのハンドル);
        ・
        ・

でいかないですか?

編集 削除
DotL  2003-04-01 23:51:17  No: 51220  IP: [192.*.*.*]

すみません。表記がSDKでした...。
でも要領は同じです。

編集 削除
show  2003-04-02 23:02:59  No: 51221  IP: [192.*.*.*]

レス、ありがとうございました。
SetWindowPos()、SetActiveWindow()、SetForeGroundWindow()、BringWindowToTop()、等、いろいろ試していたのですが、
最前面にするというよりも、どう表示するかという問題だったみたいで、
ShowWindow()の指定でうまくいくことができました。
呼び出すアプリケーションが特殊らしくて相性が悪かったみたいです。
みなさん本当にありがとうございました。

編集 削除
show  2003-04-27 15:14:50  No: 51222  IP: [192.*.*.*]

解決済みです。ありがとうございました。

編集 削除