C言語 - MFC - ダイアログをアクティブにする
- 1. 概要
- 2. ダイアログをアクティブにする
1. 概要
昔知ってたような気もしますが、すっかり忘れちゃったな。
「C#」を使っているうちに、「MFC」のことなんざ忘れちゃいます。
昔「MFC」で作成していたツールを、「C#」へ移植するような機会があってですね。
ボタンをクリックすると、いろいとやるもんで、だいぶ時間がかかります。
ボタン押した後に、他の作業をするとしますわな。
そうすると、ダイアログが他のウィンドウの下に隠れちゃうわけです。
処理が終わって、ダイアログ上に、「終わりましたよ」と書かれているのですが、ダイアログ自体が隠れちゃってるので、気づかないわけです。
処理が終わったら、ダイアログウィンドウを最前面に表示したい・・・ぞ・・・と。
「C#」のウィンドウだと、処理の直後に
this.Activate();
てな1行をいれておけば、ば~んと最上位に表示されます。
「MFC」にもそんなのが、あるはずなんだがなぁ。
あれこれやってみたあげく、下記のサイトを参考にさせていただきました。
「VC++でウィンドウをアクティブにする 方法を教えてください。Set…」
2. ダイアログをアクティブにする
「MFC」は、結局、メソッドやイベントをどれだけ知ってるかってことなんですよね。
まぁ、ライブラリやフレームワークは、結局、そういうことなんだけど。
命題をクリアしたのは、下記のメソッド。
this->SetForegroundWindow();
これを「CDialog」なり「CDialogEx」の派生クラスで、時間のかかる処理の後にいれておけば、処理が終わった後で、ダイアログウィンドウが最上位に表示されます。
|
|