-2
私はclrTextBk
を使用して背景色を設定します。しかし、Windowsシステムには、標準的な背景色が異なる多くのテーマがあります。例えば、Windows XPのテーマの使用カラー#316ac5、COLOR_HOTLIGHT
、#0a246a、およびその他の色のような古典的なテーマの使用色は、clrTextBk
として使用されています。私はGetSysColor
をCOLOR_BACKGROUND
またはCOLOR_DESKTOP
と使用してみることができますが、この色はclrTextBk
の標準ではありません。どのように現在のテーマの標準的な背景色(clrTextBk
)を取得しますか? WinApi - 標準的な背景色を取得
と私が選択したテキストの標準の背景色を取得するために、使用
clrTextBk
is a field ofNMLVCUSTOMDRAW
GetSysColor(COLOR_HIGHLIGHT)
が必要:
テーマapiを使用する必要があります –
ありがとうございます。私は 'OpenThemeData(hMainWnd、PWideChar( 'TEXTSTYLE'))'を使ってみますが、これはエラーを出します:** SIGSEGV **。 –
それはどのようにしてコンパイルされましたか?文字定数に複数の実際の文字を含めることはできません。さらに、それはワイド文字列でもありません!とにかくあなたの状況はわかりません。どんな種類の表面を描こうとしていますか?タブページ?非クライアントエリアですか?他に何か?あなたに役立つスクリーンショットを提供できるかどうか。また、テキストの背景色やその他の背景色について話していますか?また、標準的なダイアログの背景色は、テーマが設定されていても 'COLOR_BTNFACE'ですが、あなたが何をしているのかに応じてこれを心配する必要はありません。 – andlabs