函数功能:
GetSysColor 函数用于获取指定显示元素的当前颜色。显示元素是窗口部分和出现在系统显示屏上的显示区。
API 函数原型:
注释:_In_ 说明该参数是输入的。
DWORD WINAPI GetSysColor(
_In_ int nIndex
);
参数解析:
|
参数
|
含义
|
|
nIndex
|
指定要获取颜色的显示元素,这个参数可以是以下值的一种:
|
值
|
含义
|
|
COLOR_3DDKSHADOW(21)
|
三维显示元素的阴影
|
|
COLOR_3DFACE(15)
|
面向三维显示元素颜色和对话框背景
|
|
COLOR_3DHIGHLIGHT(20)
|
高亮三维显示元素颜色(边缘面向光源)
|
|
COLOR_3DHILIGHT(20)
|
高亮三维显示元素颜色(边缘面向光源)
|
|
COLOR_3DLIGHT(22)
|
使三维显示元素的颜色发光(边缘面向光源来的方向)
|
|
COLOR_3DSHADOW(16)
|
三维显示元素的阴影色(边缘对光源来的方向)
|
|
COLOR_ACTIVEBORDER(10)
|
活动窗口边框
|
|
COLOR_ACTIVECAPTION(2)
|
1. 活动窗口标题栏
2. 如果启用了渐变功能,则在活动窗口标题的颜色渐变中指定左侧的颜色
|
|
COLOR_APPWORKSPACE(12)
|
多文件接口应用的背景色
|
|
COLOR_BACKGROUND(1)
|
桌面
|
|
COLOR_BTNFACE(15)
|
面向三维显示元素颜色和对话框的背景
|
|
COLOR_BTNHIGHLIGHT(20)
|
高亮三维显示元素颜色(边缘面向光源)
|
|
COLOR_BTNHILIGHT(20)
|
高亮三维显示元素颜色(边缘面向光源)
|
|
COLOR_BTNSHADOW(16)
|
三维显示元素的阴影色(边缘对光源来的方向)
|
|
COLOR_BTNTEXT(18)
|
下压按钮上的文本
|
|
COLOR_CAPTIONTEXT(9)
|
在标题、大小框和滚动条箭头框中的文本
|
|
COLOR_DESKTOP(1)
|
桌面
|
|
COLOR_GRADIENTACTIVECAPTION(27)
|
1. 一个活动窗口标题栏的渐变色层右边的颜色
2. COLOR_ACTIVECAPTION 指定左边的颜色。SPI_GETGRADIENTCAPTIONS 和 SystemParametersInfo 函数一起使用,决定是否激活渐变功能
|
|
COLOR_GRADIENTINACTIVECAPTION(28)
|
一个活动窗口标题栏渐变色层右边的颜色。COLOR_INACTIVECAPTION 指定左边的颜色
|
|
COLOR_GRAYTEXT(17)
|
灰色的(禁用的)文本。如果当前的显示驱动不支持纯灰色,该颜色值设置为 0
|
|
COLOR_HIGHLIGHT(13)
|
操作中选定的项
|
|
COLOR_HIGHLIGHTTEXT(14)
|
操作中选定项的文本
|
|
COLOR_HOTLIGHT(26)
|
超链接或热跟踪项的颜色
|
|
COLOR_INACTIVEBORDER(11)
|
非活动窗口边框
|
|
COLOR_INACTIVECAPTION(3)
|
1. 非活动窗口标题
2. 如果渐变功能被激活,指定非活动窗口标题栏的渐变颜色层中的左侧颜色
|
|
COLOR_INACTIVECAPTIONTEXT(19)
|
非活动标题文本的颜色
|
|
COLOR_INFOBK(24)
|
工具提示控件的背景色
|
|
COLOR_INFOTEXT(23)
|
工具提示控件的文本颜色
|
|
COLOR_MENU(4)
|
菜单背景色
|
|
COLOR_MENUHILIGHT(29)
|
1. 当菜单以平面菜单(参考 SystemParametersInfo 函数)形式出现是,该色用于突显菜单项。突出的菜单项用 COLOR_HIGHLIGHT 描绘轮廓
2. Window2000:不支持该值
|
|
COLOR_MENUBAR(30)
|
1. 当菜单以平面菜单(参考 SystemParametersInfo)出现时的菜单背景色。但是 COLOR_MENU 继续指定弹出菜单的背景色
2. Window2000:不支持该值
|
|
COLOR_MENUTEXT(7)
|
菜单中的文本
|
|
COLOR_SCROLLBAR(0)
|
滚动条灰色区域
|
|
COLOR_WINDOW(5)
|
窗口背景
|
|
COLOR_WINDOWFRAME(6)
|
窗口框架
|
|
COLOR_WINDOWTEXT(8)
|
窗口中的文本
|
|
返回值:
1. 函数返回给定元素的红、绿、蓝(RGB)三色值。
2. 如果 nIndex 的参数超出范围,返回值为 0。因为 0 也是一个有效的 RBG 值,你不能用 GetSysColor 函数来决定一个系统颜色是否由当前平台支持。相反,使用 GetSysColor 函数,如果颜色不被系支持,返回 NULL 值。
备注:
1. 为显示 RBG 值的组成元素,使用 GetRValue,GetGValue 和 GetBValue 宏命令。
2. 单色显示器的系统颜色通常被理解为灰色的色调。
3. 为了使用系统颜色的刷子绘制,一个应用应该使用 GetSysColorBrush(nIndex) 函数,而不是 CreateSolidBrush(GetSysColor(nIndex)) 函数,因为 GetSysColorBrush 函数返回一个缓冲区中的刷子,而不是重新分配一个新的。
4. 颜色是很多用户界面非常重要的一个可视元素。在你的应用中使用颜色的指南,请参考 Color。
需求:
|
Minimum supported client
|
Windows 2000 专业版 [仅桌面应用程序]
|
|
Minimum supported server
|
Windows 2000 服务器版 [仅桌面应用程序]
|
|
Header
|
Winuser.h (包含于 Windows.h)
|
|
Library
|
User32.lib
|
|
DLL
|
User32.dll
|