GetSysColor

指定されたシステムカラー(各々のディスプレイ要素で現在使用されている色)を取得します。

DWORD GetSysColor(
    int nIndex   // システムカラーのインデックス
);

USER32.DLL

引数

nIndex

色を取得するディスプレイ要素を指定します。以下のいずれかの値を指定します。

定数名 意味
COLOR_SCROLLBAR 0 スクロールバーの軸の色
COLOR_BACKGROUND,
COLOR_DESKTOP
1 デスクトップの色
COLOR_ACTIVECAPTION 2 アクティブウィンドウのタイトルバーの色

Windows 98/2000 以上: グラデーション有効の場合はアクティブウィンドウのタイトルバーの左側の色

COLOR_INACTIVECAPTION 3 非アクティブウィンドウのタイトルバーのテキストの色

Windows 98/2000 以上: グラデーション有効の場合は非アクティブウィンドウのタイトルバーの左側の色

COLOR_MENU 4 メニューの背景色
COLOR_WINDOW 5 ウィンドウの背景色
COLOR_WINDOWFRAME 6 ウィンドウの枠の色
COLOR_MENUTEXT 7 メニュー内のテキストの色
COLOR_WINDOWTEXT 8 ウィンドウ内のテキストの色
COLOR_CAPTIONTEXT 9 アクティブウィンドウのタイトルバーのテキストの色
COLOR_ACTIVEBORDER 10 アクティブウィンドウの境界の色
COLOR_INACTIVEBORDER 11 非アクティブウィンドウの境界色
COLOR_APPWORKSPACE 12 MDI (マルチドキュメントインターフェイス)アプリケーションの背景色
COLOR_HIGHLIGHT 13 コントロール内における選択された項目の色
COLOR_HIGHLIGHTTEXT 14 コントロール内における選択された項目のテキストの色
COLOR_BTNFACE,
COLOR_3DFACE
15 3D オブジェクトの表面色
COLOR_BTNSHADOW,
COLOR_3DSHADOW
16 3D オブジェクトの影の色 (光源の反対方向の縁用)
COLOR_GRAYTEXT 17 淡色状態 (無効状態) のテキストの色
COLOR_BTNTEXT 18 プッシュボタンのテキストの色
COLOR_INACTIVECAPTIONTEXT 19 非アクティブウィンドウのタイトルバーのテキストの色
COLOR_BTNHIGHLIGHT,
COLOR_3DHIGHLIGHT,
COLOR_3DHILIGHT,
COLOR_BTNHILIGHT
20 3D オブジェクトの最も明るい色 (光源方向の縁用)
COLOR_3DDKSHADOW 21 3D オブジェクトの暗い影の色
COLOR_3DLIGHT 22 3D オブジェクトの明るい色 (光源方向の縁用)
COLOR_INFOTEXT 23 ツールチップコントロールのテキストの色
COLOR_INFOBK 24 ツールチップコントロールの背景色
COLOR_HOTLIGHT 26 Windows 98/2000 以上: ホットトラックアイテムの色
COLOR_GRADIENTACTIVECAPTION 27 Windows 98/2000 以上: グラデーション有効の場合はアクティブウィンドウのタイトルバーの右側の色
COLOR_GRADIENTINACTIVECAPTION 28 Windows 98/2000 以上: グラデーション有効の場合は非アクティブウィンドウのタイトルバーの右側の色
COLOR_MENUHILIGHT 29 Windows XP 以上: メニューがフラットメニューとして表示されるときにメニューアイテムをハイライト表示するのに使用される色

ハイライト表示されたメニューアイテムは COLOR_HIGHLIGHT で指定される色で輪郭が描かれます。

COLOR_MENUBAR 30 Windows XP 以上: メニューがフラットメニューとして表示されるときのメニューバーの背景色

ただし、ポップアップメニューの背景色の指定には COLOR_MENU が使用されます。

戻り値

関数が成功すると、指定された要素の色を示す RGB 値が返ります。

nIndex パラメータに現在のプラットホームがサポートしない値を指定すると 0 が返ります。ただし、 0 は有効な RGB 値であるため、指定された値が現在のプラットホームでサポートされているかどうかを判断するのに GetSysColor 関数を使用することはできません。代わりに、 GetSysColorBrush 関数が 0 (NULL) を返すかどうかで判断します。

解説

システムカラーのブラシを使用して描画する場合には、 CreateSolidBrush 関数でブラシを作成するのはでなく、 GetSysColorBrush 関数を使って取得したブラシを使用するべきです。 GetSysColorBrush 関数はキャッシュされているブラシを返します。

対応情報

Windows 95 以降 / Windows NT 3.1 以降