画面の前面処理&ウィンドウをアクティブにする

解決


アジャジャ  2003-10-23 14:28:56  No: 109369  IP: [192.*.*.*]

画面を前面に表示し、その画面をアクティブにする方法を探しています。
Windows XPだとなぜか裏に画面が隠れてしまいます。

<現状のコーディング>
1.SetWindowPos(HWND_TOPMOST、HWND_NOTOPMOSTの順)で画面を前面に表示させる。
    なぜか裏に隠れた画面が操作可能状態(アクティブなウィンドウ?)になる。
2.SetForegroundWindowで画面をアクティブにする。
    アクティブ画面にならない。


要するに画面が表に表示され、その画面を正常に操作できるようにしたいのです。

どなたかご教授願います。

編集 削除
s  2003-10-23 14:49:15  No: 109370  IP: [192.*.*.*]

HWND_NOTOPMOSTにすると前から2番目になるのでは?

編集 削除
アジャジャ  2003-10-23 14:55:58  No: 109371  IP: [192.*.*.*]

訂正します。

HWND_TOPMOST、HWND_NOTOPMOST、HWND_TOPの順です。

編集 削除
アジャジャ  2003-10-23 19:28:35  No: 109372  IP: [192.*.*.*]

解決しました。

下記APIを使用するとできました。

1.GetWindowThreadProcessId
2.GetForegroundWindow
3.AttachThreadInput
4.SetForegroundWindow

編集 削除
アジャジャ  2003-10-23 19:29:20  No: 109373  IP: [192.*.*.*]

解決時のチェックを忘れました。

編集 削除