平台 SDK: Windows 系统信息 |
GetSysColor函数检索指定显示元素的当前颜色。 显示元素是显示在系统显示屏幕上的窗口和显示的部分。
DWORD GetSysColor( int nIndex // 显示元素 );
nIndex
[in] 指定要检索其颜色的显示元素。 该参数可以是以下值之一。
值 | 含义 |
---|---|
COLOR_3DDKSHADOW | 阴影为三维显示元素。 |
COLOR_3DFACE, COLOR_BTNFACE | 面向三维显示元素和对话框背景的颜色。 |
COLOR_3DHILIGHT, COLOR_3DHIGHLIGHT, COLOR_BTNHILIGHT, COLOR_BTNHIGHLIGHT | 突出显示三维显示元素的颜色(面向光源的边缘)。 |
COLOR_3DLIGHT | 三维显示元素的浅色(面向光源的边缘)。 |
COLOR_3DSHADOW, COLOR_BTNSHADOW | 三维显示元素的阴影颜色(背离光源的边缘)。 |
COLOR_ACTIVEBORDER | 活动窗口边框。 |
COLOR_ACTIVECAPTION | 活动窗口标题栏。 Windows 98/Me, Windows 2000/XP: 如果启用了渐变效果,则指定活动窗口标题栏的颜色渐变中的左侧颜色。 |
COLOR_APPWORKSPACE | 多文档界面(MDI)应用程序的背景颜色。 |
COLOR_BACKGROUND, COLOR_DESKTOP | 桌面。 |
COLOR_BTNTEXT | 按钮上的文本。 |
COLOR_CAPTIONTEXT | 标题,大小框和滚动条箭头框中的文本。 |
COLOR_GRADIENTACTIVECAPTION | Windows 98/Me, Windows 2000/XP: 活动窗口标题栏的颜色渐变中的右侧颜色。 COLOR_ACTIVECAPTION指定左侧颜色。 使用SPI_GETGRADIENTCAPTIONS和SystemParametersInfo函数来确定是否启用渐变效果。 |
COLOR_GRADIENTINACTIVECAPTION | Windows 98/Me, Windows 2000/XP: 非活动窗口标题栏的颜色渐变中的右侧颜色。 COLOR_INACTIVECAPTION指定左侧颜色。 |
COLOR_GRAYTEXT | 灰色(禁用)文本。 如果当前显示驱动程序不支持纯灰色,则此颜色设置为0。 |
COLOR_HIGHLIGHT | 在控件中选择的项目。 |
COLOR_HIGHLIGHTTEXT | 在控件中选择的项目文本。 |
COLOR_HOTLIGHT | Windows 98/Me, Windows 2000/XP: 用于热追踪项目的颜色。 单击热追踪项目即可执行该项目。 |
COLOR_INACTIVEBORDER | 非活动窗口边框。 |
COLOR_INACTIVECAPTION | 非活动窗口标题。 Windows 98/Me, Windows 2000/XP: 如果启用了渐变效果,则指定非活动窗口标题栏的颜色渐变中的左侧颜色。 |
COLOR_INACTIVECAPTIONTEXT | 不活动标题中的文字颜色。 |
COLOR_INFOBK | 工具提示控件的背景颜色。 |
COLOR_INFOTEXT | 工具提示控件的文本颜色。 |
COLOR_MENU | 菜单背景。 |
COLOR_MENUHILIGHT | Windows XP: 菜单显示为平面菜单时用于突出显示菜单项的颜色(请参阅SystemParametersInfo)。 突出显示的菜单项目用COLOR_HIGHLIGHT标出。 |
COLOR_MENUBAR | Windows XP: 菜单显示为平面菜单时菜单栏的背景色(请参阅SystemParametersInfo)。 但是,COLOR_MENU会继续指定菜单弹出框的背景颜色。 |
COLOR_MENUTEXT | 在菜单中的文本。 |
COLOR_SCROLLBAR | 滚动栏灰色区域。 |
COLOR_WINDOW | 窗口背景。 |
COLOR_WINDOWFRAME | 窗框。 |
COLOR_WINDOWTEXT | 在窗口中的文本。 |
该函数返回给定元素的红色,绿色,蓝色(RGB)颜色值。
如果nIndex参数超出范围,则返回值为零。 由于零也是有效的RGB值,因此无法使用GetSysColor来确定当前平台是否支持系统颜色。 而是使用GetSysColorBrush函数,如果颜色不受支持,则该函数返回NULL。
单色显示器的系统颜色通常被解释为灰色阴影。
要使用系统颜色笔刷绘画,应用程序应使用GetSysColorBrush(nIndex)而不是CreateSolidBrush(GetSysColor(nIndex)),因为GetSysColorBrush会返回缓存笔刷(而不是分配新笔刷)。
有关示例,请参阅更改窗口元素的颜色。
Windows NT/2000/XP: 包含在Windows NT 3.51和更高版本中。
Windows 95/98/Me: 包含在Windows 95和更高版本中。
头文件: 声明于 Winuser.h; 包含于 Windows.h.
库: 使用 User32.lib.