こんにちは。
VisualStudio2005 で XP 上でプログラムしています。
MDIで表示されている子ウィンドウ(CMDIChildWndから派生したもの)をすべて非アクティブにする方法を
探しています。ウィンドウのワークスペース部分をクリックしたときにMDI子ウィンドウを非アクティブに
したいのです。
いくつか実験してみました。
-
SendMessageでWM_ACTIVATEを送信して内部的には非アクティブになっているようですが、
見た目が非アクティブになりませんでした。一瞬タイトルバーが非アクティブ状態になるのですが、
アプリケーションを画面からはずれるようにして、戻すとタイトルバーがアクティブの色になって
しまっています。
-
表示されないMDI子ウィンドウを作って、このウィンドウをアクティブにする方法も考えて実験して
みたのですが、作成しているプログラムの都合で利用できません。
-
最後に考えたのが、CMDIChildWndのOnNcPaintを利用してタイトルバーを再描画する方法ですが、
デスクトップがXPテーマで表現されている場合とWindowsクラシック(Windowsクラシックはテーマでは
ないようで)とで二通りの描画を管理しなければならないのと、メンテにちょっと不安が残ります。
といった感じ結局どれもうまくいかずにここで質問させていただきました。
もしご存じでしたら教えていただけないでしょうか。
お願いいたします。