Как вывести текст в консольном приложении
различными цветами?
Каждый символ сонсольного приложения имеет
свои аттрибуты, и 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 данным методом.
|