C++ устанавливает цвет шрифта на черный
PS: я использую Code::blocks
недоступно conio2.h
Я хочу установить цвет шрифта на черный с помощью Windows API
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), XXXXXX);
Что я должен заполнить в XXXXXX?
2 ответа
Из документации:
Атрибуты переднего плана определяют цвет текста. Атрибуты фона задают цвет, используемый для заливки фона ячейки. Другие атрибуты используются с DBCS.
Приложение может комбинировать константы переднего и заднего плана для получения разных цветов. Например, следующая комбинация приводит к яркому голубому тексту на синем фоне.
FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE\
Если фоновая константа не указана, фон черный, а если не указана постоянная переднего плана, текст черный. Например, следующая комбинация создает черный текст на белом фоне.
BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED
Цвет шрифта представлен комбинацией нескольких возможных атрибутов:
FOREGROUND_BLUE Text color contains blue.
FOREGROUND_GREEN Text color contains green.
FOREGROUND_RED Text color contains red.
FOREGROUND_INTENSITY Text color is intensified.
В вашем случае, так как вы хотите, чтобы цвет переднего плана был черным, вы не должны передавать никаких атрибутов вообще:
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0);
Как отмечает Бен Фойгт в комментариях ниже, это приведет к черному тексту на черном фоне. Возможно, вы захотите указать комбинацию атрибутов фона, чтобы текст был читабельным. Например (черным по белому):
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);