首页 > 技术文章 > SetSysColors 修改系统颜色

Open-Source 2016-08-28 11:57 原文

首先我们来看一下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(138, 200, 255), 
        RGB(0, 80, 150),
        RGB(0x80, 0x00, 0x80),
        RGB(0x00, 0x80, 0x80),
        RGB(0xC0, 0xC0, 0xC0),
    };

       SetSysColors(5, 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               立体显示的元件的阴影的颜色

 

推荐阅读