Top > Programmingとか > VB / VB.NET > VB小ネタ

VB6+WinXP:デスクトップテーマ対応の限界

APIでTabStripを実装した場合、それ自体はデスクトップテーマを反映する。
が、その上に載せたコントロールの背景部分は、TabStripの状態を反映しない。
矩形のコントロールの場合は別に影響しないが、ラベルなど原則背景透過のコントロールは致命的となる。

下記参照先の「視覚スタイル API をコンテナに適用する」あたりの記述を見ると、WM_PAINTメッセージが走った時にDrawThemeBackgroundとかそのへんの専用APIを投げてやる必要があるっぽい。てゅうか、これでイケるのかも未確認。

たかがラベルのためにメッセージフックでオーナードローかよ。
だったら素直にVC++で作るわ。

参照:
msdnJP Windows XP の視覚スタイルおよび PrintWindow を Windows アプリケーションで使用する
msdnJPサポート技術情報 309366 [INFO] Visual Basic 6.0 では Windows XP のテーマ (視覚スタイル) はサポートされていない

トラックバック

このエントリーのトラックバックURL:
http://salv.miscnotes.com/mt/mt-tb.cgi/79

コメントを投稿