Changing the Colors of Window Elements

The following example uses the SetSysColors function to change the color of active window borders to dark purple, of active title bars to dark cyan, and of the window background to light gray.

// window elements to change 
int aiElements[3] = {COLOR_ACTIVEBORDER, 
                     COLOR_ACTIVECAPTION, 
                     COLOR_WINDOW}; 

// array of RGB values 
DWORD aColors[3]; 
 
// Define the new colors. 
 
aColors[0] = RGB(0x80, 0x00, 0x80);  // dark purple 
aColors[1] = RGB(0x00, 0x80, 0x80);  // dark cyan 
aColors[2] = RGB(0xC0, 0xC0, 0xC0);  // light gray 
 
// Set the window elements in aiElements to the colors 
// specified in aColors. 
 
SetSysColors(3, aiElements, aColors); 
 

The next example uses the GetSysColor function to retrieve the color of the window background and displays the red, green, blue (RGB) value, in hexadecimal notation, in a message box.

DWORD dwResult;           // function return value 
 
TCHAR tchBuffer[BUFFER];  // buffer for expanded string 
int nSize;                // size of string 
 
// Get the color of the window background. 
 
dwResult = GetSysColor(COLOR_WINDOW); 
 
nSize = sprintf(tchBuffer, 
    "Window color: {%x, %x, %x}", 
    GetRValue(dwResult), 
    GetGValue(dwResult), 
    GetBValue(dwResult)); 
 
MessageBox(NULL, tchBuffer, "GetSysColor", MB_ICONINFORMATION);