画面を前面に表示し、その画面をアクティブにする方法を探しています。
Windows XPだとなぜか裏に画面が隠れてしまいます。
<現状のコーディング>
1.SetWindowPos(HWND_TOPMOST、HWND_NOTOPMOSTの順)で画面を前面に表示させる。
なぜか裏に隠れた画面が操作可能状態(アクティブなウィンドウ?)になる。
2.SetForegroundWindowで画面をアクティブにする。
アクティブ画面にならない。
要するに画面が表に表示され、その画面を正常に操作できるようにしたいのです。
どなたかご教授願います。
HWND_NOTOPMOSTにすると前から2番目になるのでは?
編集 削除訂正します。
HWND_TOPMOST、HWND_NOTOPMOST、HWND_TOPの順です。
解決しました。
下記APIを使用するとできました。
1.GetWindowThreadProcessId
2.GetForegroundWindow
3.AttachThreadInput
4.SetForegroundWindow
解決時のチェックを忘れました。
編集 削除