私は、TABコントロールを含むダイアログを持つATLアプリケーションを持っています。アプリケーションは、共通コントロールマニフェストを使用します。ビジュアルスタイルとXPの下でATL App、XPスタイルのTABコントロールの背景
、タブコントロールの背景には、ダイアログとコントロール(主にチェックボックス)とは異なる色であるので、それは非常に醜いです。
私はそれを解決することができますか?
私は、TABコントロールを含むダイアログを持つATLアプリケーションを持っています。アプリケーションは、共通コントロールマニフェストを使用します。ビジュアルスタイルとXPの下でATL App、XPスタイルのTABコントロールの背景
、タブコントロールの背景には、ダイアログとコントロール(主にチェックボックス)とは異なる色であるので、それは非常に醜いです。
私はそれを解決することができますか?
Hereあなたの質問に対する回答が見つかりました。
チェックボックスは、親にWM_CTLCOLORBTN通知を掲載します。 、チェックボックスコントロールのIDについて、親ウィンドウのメッセージハンドラが
GetStockObject(HOLLOW_BRUSH)
の結果を返す場合は、チェックボックスは、あなたが望む外観を与える必要があり、透明な背景で描かれなければなりません。
あります - 明らかに - XPのビジュアルスタイルを使用して、正しく色のタブコントロールページを取得するために行うための一つのこと。各ページのWM_INITDIALOGハンドラで
、ETDT_ENABLETAB
フラグでuxthemeのAPI EnableThemeDialogTexture
を呼び出し、これは、自動的にダイアログの背景色を変更し、そのすべての子には、タブ上で、適切にペイントするコントロール。
ダイアログページは、以前とは異なるセット透明フラグの任意の種類、または実際に任意のスタイルビットを必要としません。 またはWM_CTLCOLORDLG
をDialogProcのページでオーバーライドした場合は、デフォルトの処理(戻り値FALSE
)に戻す必要があります。
完璧ではありませんが、その仕事をしています - ありがとう! – peterchen