2013-08-29 2 views
0

PS: Я использую Code :: Blocks
нет conio2.h доступныC++ установить цвет шрифта черный

Я хочу, чтобы установить цвет шрифта в черный цвет окнами API

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), XXXXXX); 

То, что должно Я заполняю XXXXXX?

+0

Читали [пример] (http://msdn.microsoft.com/en-us/library/windows/desktop/ms686974.aspx)? –

+0

Это не отвечает на мой вопрос, мне нужно ввести rgb, чтобы сделать его черным, тогда компилятор скажет мне, что я должен заполнить что-то в XXXXXX – Echo

+1

. Я дал вам ссылку на пример с помощью 'SetConsoleTextAttribute'. –

ответ

0

От the documentation:

Приоритетными атрибуты определяют цвет текста. Атрибуты фона определяют цвет, используемый для заполнения фона ячейки. Другие атрибуты используются с DBCS.

Приложение может комбинировать фоновые и фоновые константы для достижения разных цветов. Например, следующая комбинация приводит к яркому голубому тексту на синем фоне.

FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE\ 

Если не указано фон постоянны, фон черный и , если не указано переднего плана постоянной, текст черного цвета. Например, следующая комбинация создает черный текст на белом фоне.

BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED 
+0

На самом деле, я имею в виду только изменить шрифт, а не фон ... – Echo

+0

@Echo: Если вы хотите оставить фон один, вам нужно сначала прочитать текущие атрибуты. –

+0

Хорошо, можете ли вы ответить мне, что делает | оператор здесь первым? – Echo

1

цвет шрифта представлена ​​комбинация нескольких возможных атрибутов:

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

Это сделает как передний, так и черный фон ... возможно, не очень полезным. –

+0

@Ben, я думал, что это был вопрос, который искал искатель (в маске). Но у вас есть точка. –

Смежные вопросы