DOBON.NET DOBON.NETプログラミング掲示板過去ログ

アクティブでないウィンドウ枠の色について

環境/言語:[OS : Windows XP Professional / 言語 : Visual Basic .NET / .NET Framework : 1.1]
分類:[.NET]

【解決したい問題】

初めて質問させていただきます。下記の内容で悩んでいます。

メインウィンドウには、ビットマップなどのファイルリストを表示して
そのリストをクリックすると、プレビューのようなサブウィンドウを、
表示するプログラムを作成しています。
このプレビューウィンドウにフォーカスがない時でも、ウィンドウの
枠の色をフォーカスがある時の色にするには、どうしたらよろしいで
しょうか?(ウィンドウテキストが、ぼやけてしまうため)

以上よろしくお願いします。
> メインウィンドウには、ビットマップなどのファイルリストを表示して
> そのリストをクリックすると、プレビューのようなサブウィンドウを、
> 表示するプログラムを作成しています。
> このプレビューウィンドウにフォーカスがない時でも、ウィンドウの
> 枠の色をフォーカスがある時の色にするには、どうしたらよろしいで
> しょうか?(ウィンドウテキストが、ぼやけてしまうため)

同様のご質問はこの掲示板でも何回か出ましたので、検索していただければ見つかるのではないかと思いますが、結論としては、タイトルバーも枠も無いフォームとして、タイトルバーと枠は自分で描画するということになりそうです。

テキストがぼやけてしまうためということですが、どのような色で表示するかはユーザーが自由に変更できますので、アクティブなウィンドウと見た目を同じにしても解決にはならないのではないでしょうか?
ありがとうございました。探してみます。
解決済み!
>結論としては、タイトルバーも枠も無いフォームとして、タイトルバーと枠は自分で描画するということになりそうです。

あるいは、WM_NCPAINT メッセージを捕捉して自分で描画、ですね。

いわゆる「スキン」のようなものではなく、「アクティブな時と同じ見栄え」とかなら、本来はこちらの方が楽なはずです。

が、XP 以降のテーマに対応しようと思うと Theme APIs を使っての描画になるので少し面倒です。

DOBON.NET | プログラミング道 | プログラミング掲示板