Как вывести текст в консольном приложении различными цветами

Каждый символ сонсольного приложения имеет свои аттрибуты, и Win32 консольные функции могут работать с аттрибутами двумя способами. SetConsoleTextAttribute() работает с символами, записанными в буфере, в то время как FillConsoleOutputAttribute() напрямую изменяет атрибуты символов.

Следующие функции можно использовать для нормального, жирного и обратного текста (предполагается, что класс имеет обработчик консоли через вызов GetStdHandle()):

void CMyConsoleClass::SetTextNormal()
{
// белым на чёрном - по умолчанию
SetConsoleTextAttribute ( m_hConsole,
FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE );
}

void CMyConsoleClass::SetTextBold()
{
// ярко-белым на чёрном
SetConsoleTextAttribute ( m_hConsole,
FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE |
FOREGROUND_INTENSITY );
}

void CMyConsoleClass::SetTextReverse()
{
// чёрным на белом
SetConsoleTextAttribute ( m_hConsole,
BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE );
}

Обратите внимание, что нет никаких установок для мерцания и подчёркивания, так что Вам прийдётся проявить немного изобратательности, если Вы хотите полностью съэмулировать текстовые режимы ANSI или VT100 данным методом. 

 
« Предыдущая статья   Следующая статья »