- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Formをアクティブにする)
Formをアクティブにする
このQ&Aのポイント
- バックグラウンドで実行中のプログラムでエラーが発生した場合に、サブフォームを表示しフォームをアクティブにする方法は?
- 現在、SetWindowPos関数を使用してサブフォームのhwndを渡し、HWND_TOPMOSTに設定し、SetFocus関数を使用してアクティブにしているが、タイトルバーが点滅してアクティブにならない。
- アクティブにしたいサブフォームを最前面に表示するためには、どのような方法があるか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
SetForgroundWindowを使わないといけません また Win2000以降でこのAPIの仕様が変更になったため AttachThreadInputもあわせて使うようにしないと希望の動作にならないかと 1) 現在実行中のプロセスのスレッドIDを取得 GetForegroundWindow/GetWindowThreadProcessId 2) 自分のスレッドIDを取得 GetWindowThreadProcessId 3) AttachThreadInputの引数を自分のID、相手のID、TRUEを実行して接続する 4) SetForegroundWindowで自分自身を前面にする 5) AttachThreadInputの引数を自分のID、相手のID、FALSEを実行して接続を切る
お礼
ありがとうございます。 試してみたいと思います。