2016-12-22 22 views
-2

私はclrTextBkを使用して背景色を設定します。しかし、Windowsシステムには、標準的な背景色が異なる多くのテーマがあります。例えば、Windows XPのテーマの使用カラー#316ac5、COLOR_HOTLIGHT、#0a246a、およびその他の色のような古典的なテーマの使用色は、clrTextBkとして使用されています。私はGetSysColorCOLOR_BACKGROUNDまたはCOLOR_DESKTOPと使用してみることができますが、この色はclrTextBkの標準ではありません。どのように現在のテーマの標準的な背景色(clrTextBk)を取得しますか? WinApi - 標準的な背景色を取得

clrTextBk is a field of NMLVCUSTOMDRAW

と私が選択したテキストの標準の背景色を取得するために、使用 GetSysColor(COLOR_HIGHLIGHT)が必要:

+0

テーマapiを使用する必要があります –

+0

ありがとうございます。私は 'OpenThemeData(hMainWnd、PWideChar( 'TEXTSTYLE'))'を使ってみますが、これはエラーを出します:** SIGSEGV **。 –

+0

それはどのようにしてコンパイルされましたか?文字定数に複数の実際の文字を含めることはできません。さらに、それはワイド文字列でもありません!とにかくあなたの状況はわかりません。どんな種類の表面を描こうとしていますか?タブページ?非クライアントエリアですか?他に何か?あなたに役立つスクリーンショットを提供できるかどうか。また、テキストの背景色やその他の背景色について話していますか?また、標準的なダイアログの背景色は、テーマが設定されていても 'COLOR_BTNFACE'ですが、あなたが何をしているのかに応じてこれを心配する必要はありません。 – andlabs

答えて

0

回答(コーディグレーandlabsお願いします)。