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);