15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Изменение цвета элементов окна.

В следующем примере используется функция SetSysColors для изменения цвета рамки активного окна на тёмно-фиолетовый, заголовка на тёмно-голубой, а фона окна на светло-серый.

// Элементы окна, которые будут изменены.
int aiElements[3] = {COLOR_ACTIVEBORDER,
                     COLOR_ACTIVECAPTION,
                     COLOR_WINDOW};

// Массив RGB значений.
DWORD aColors[3];

// Определяем новые цвета.

aColors[0] = RGB(0x80, 0x00, 0x80);  // тёмно-фиолетовый
aColors[1] = RGB(0x00, 0x80, 0x80);  // тёмно-голубой
aColors[2] = RGB(0xC0, 0xC0, 0xC0);  // светло-серый

// Присваиваем значениям aiElements цвета из
// массива aColors.

SetSysColors(3, aiElements, aColors);

В следующем примере используется функция GetSysColor, чтобы получить цвет фона окна и отобразить красную, зелёную и синюю (RGB) составляющие этого цвета в шестнадцатиричном представлении в диалоговом окошке.

DWORD dwResult;           // возвращаемое значение функции

TCHAR tchBuffer[BUFFER];  // буффер для строки
int nSize;                // размер строки

// Получаем цвет фона окна.

dwResult = GetSysColor(COLOR_WINDOW);

nSize = sprintf(tchBuffer,
    "Window color: {%x, %x, %x}",
    GetRValue(dwResult),
    GetGValue(dwResult),
    GetBValue(dwResult));

MessageBox(NULL, tchBuffer, "GetSysColor", MB_ICONINFORMATION);