首先我们来看一下SetSysColors函数的原型:
BOOL WINAPI SetSysColors(
__in int cElements, //要改变的对象的数量
__in const INT* lpaElements, //按引用传递。这是一个整数数组(总共包含cElements个元素)。每个条目都包含了一个常量,指定一个windows显示对象。
__in const COLORREF* lpaRgbValues //按引用传递。这是RGB值数组,该数组用于设置lpSysColor数组中的对象颜色
);
我们编写源代码:
int aiElements[] =
{
COLOR_BACKGROUND,
COLOR_DESKTOP,
COLOR_ACTIVEBORDER,
COLOR_ACTIVECAPTION,
COLOR_WINDOW
}; DWORD aColors[] =
{
RGB(, , ),
RGB(, , ),
RGB(0x80, 0x00, 0x80),
RGB(0x00, 0x80, 0x80),
RGB(0xC0, 0xC0, 0xC0),
}; SetSysColors(, aiElements, aColors);
SetSysColors的lpaElements可以取值为:
-------------------------------------------------------------------------------------
COLOR_3DLIGHT 以亮色显示时立体元件的颜色
COLOR_3DSHADOW 立体元件的阴影颜色
COLOR_BTNSHADOW 按钮阴影颜色
COLOR_ACTIVEBORDER 边界颜色
COLOR_ACTIVECAPTION 标题颜色
COLOR_BACKGROUND 背景颜色
COLOR_BTNTEXT 按钮颜色
COLOR_CAPTIONTEXT 窗口拦字符颜色
COLOR_GRAYTEXT 灰色显示的文本的颜色
COLOR_DESKTOP 桌面的颜色
COLOR_HIGHLIGHT 选定项的背景颜色
COLOR_HEGHLIGHTTEXT 选定项的字符的颜色
COLOR_MENUTEXT 菜单栏的颜色
COLOR_INFOTEXT 工具提示的文本的颜色
COLOR_INFOBK 工具提示的背景的颜色
COLOR_INACTIVECAPTIONTEXT 非活动标题栏中文本的颜色
COLOR_INACTIVECAPTION 非活动标题栏的颜色
COLOR_INACTIVEBORDER 非活动边界的颜色
COLOR_WINDOWTEXT 窗口字符的颜色
COLOR_WINDOWFRAME 窗口边框的颜色
COLOR_WINDOW 窗口背景颜色
COLOR_SCROLLBAR 滚动条的颜色
COLOR_3DHILIGHT 立体元件高亮显示时的颜色
COLOR_3DHIGHLIGHT 立体元件高亮显示时的颜色
COLOR_3DFACE 立体显示的元件的表面的颜色
COLOR_BTNFACE 立体显示的元件的表面的颜色
COLOR_3DDKSHADOW 立体显示的元件的阴影的颜色