• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Formをアクティブにする)

Formをアクティブにする

このQ&Aのポイント
  • バックグラウンドで実行中のプログラムでエラーが発生した場合に、サブフォームを表示しフォームをアクティブにする方法は?
  • 現在、SetWindowPos関数を使用してサブフォームのhwndを渡し、HWND_TOPMOSTに設定し、SetFocus関数を使用してアクティブにしているが、タイトルバーが点滅してアクティブにならない。
  • アクティブにしたいサブフォームを最前面に表示するためには、どのような方法があるか?

質問者が選んだベストアンサー

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

SetForgroundWindowを使わないといけません また Win2000以降でこのAPIの仕様が変更になったため AttachThreadInputもあわせて使うようにしないと希望の動作にならないかと 1) 現在実行中のプロセスのスレッドIDを取得 GetForegroundWindow/GetWindowThreadProcessId 2) 自分のスレッドIDを取得 GetWindowThreadProcessId 3) AttachThreadInputの引数を自分のID、相手のID、TRUEを実行して接続する 4) SetForegroundWindowで自分自身を前面にする 5) AttachThreadInputの引数を自分のID、相手のID、FALSEを実行して接続を切る

kachimi
質問者

お礼

ありがとうございます。 試してみたいと思います。

関連するQ&A