C言語 - MFC - ダイアログをアクティブにする

クラウディア 
1. 概要
2. ダイアログをアクティブにする

1. 概要

 昔知ってたような気もしますが、すっかり忘れちゃったな。  「C#」を使っているうちに、「MFC」のことなんざ忘れちゃいます。  昔「MFC」で作成していたツールを、「C#」へ移植するような機会があってですね。  ボタンをクリックすると、いろいとやるもんで、だいぶ時間がかかります。  ボタン押した後に、他の作業をするとしますわな。  そうすると、ダイアログが他のウィンドウの下に隠れちゃうわけです。  処理が終わって、ダイアログ上に、「終わりましたよ」と書かれているのですが、ダイアログ自体が隠れちゃってるので、気づかないわけです。  処理が終わったら、ダイアログウィンドウを最前面に表示したい・・・ぞ・・・と。  「C#」のウィンドウだと、処理の直後に

	this.Activate();
 てな1行をいれておけば、ば~んと最上位に表示されます。  「MFC」にもそんなのが、あるはずなんだがなぁ。  あれこれやってみたあげく、下記のサイトを参考にさせていただきました。
VC++でウィンドウをアクティブにする 方法を教えてください。Set…

2. ダイアログをアクティブにする

 「MFC」は、結局、メソッドやイベントをどれだけ知ってるかってことなんですよね。  まぁ、ライブラリやフレームワークは、結局、そういうことなんだけど。  命題をクリアしたのは、下記のメソッド。

	this->SetForegroundWindow();
 これを「CDialog」なり「CDialogEx」の派生クラスで、時間のかかる処理の後にいれておけば、処理が終わった後で、ダイアログウィンドウが最上位に表示されます。