Как изменить цвет для окна консоли c++
Внимание! Представленные ниже способы подходят только для Windows систем! Для Linux используйте библиотеку ncurses .
Можно менять цвет фона окна и символов без дополнительных библиотек, простой функцией system() . Достаточно написать, например, system(«color F0») и будет установлен белый фон (F) и чёрный текст (0). Можно писать и наоборот, например: system(«color 3F»); установит голубой фон и белый текст.
- 0 — черный
- 1 — синий
- 2 — зеленый
- 3 — голубой
- 4 — красный
- 5 — лиловый
- 6 — желтый
- 7 — белый
- 8 — серый
- 9 — свело-синий
- A — светло-зеленый
- B — светло-голубой
- С — светло-красный
- E — светло-желтый
- F — ярко-белый
Можно использовать функцию SetConsoleTextAttribute() из Windows.h:
HANDLE h; h = GetStdHandle(STD_OUTPUT_HANDLE); //получаем наше окно, в котором нужно изменить цвет
И установим жёлтый цвет на зелёном фоне:
SetConsoleTextAttribute(h, (((2
Что же это за страшная функция? Если кратко: число смещается на 4 бита влево и объединяется со вторым в результате логического ИЛИ. Эти действия объединят числа, чтобы функция установила нужный цвет и фон. Если интересно, можно взять результат этих операций (в данном случае 46) и скормить их функции:
SetConsoleTextAttribute(h, 46);
И вы получите такой же результат. Но настраивать гораздо удобнее по двум числа (первая отвечает за фон, вторая за текст).
Вот список цветов для этой функции:
- Чёрный - 0
- Синий - 1
- Зелёный - 2
- Голубой - 3
- Красный - 4
- Пурпурный - 5
- Коричневый - 6
- Светло-серый - 7
- Тёмно-серый - 8
- Светло-синий - 9
- Светло-зелёный - 10
- Светло-голубой - 11
- Светло-красный- 12
- Светло-пурпурный - 13
- Жёлтый - 14
- Белый - 15
Внимание! Функция system("color . ") устанавливает цвет для всей консоли и всех символов, а SetConsoleTextAttribute(); только для символов и той части консоли, которая находится под ними.
Цвет фона консоли с++
Подскажите пожалуйста как поменять цвет фона в консоли, чтобы вместо чорного экрана сделать что-то повеселее?
Лучшие ответы ( 2 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:
Цвет шрифта и фона в консоли.
Знаю, это тема уже обсуждалась, но я новичок в программировании и ничего в предложенном ранее коде.
Задать цвет шрифта/фона консоли
Цвет задается перечислением ConsoleColor, а как можно иначе? например цыфирькой во всем диапазоне.
Цвет фона строки
Можно как-то сделать, чтоб при выводе строки в Borland C++ 3.1 у строки был фон например черного.
Выбор цвета шрифта и фона консоли
Всем привет, нужно сделать так чтобы можно было выбрать цвет шрифта и цвет консоли. У меня.
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,666
Сообщение было отмечено как решение
Решение
В свойствах консоли посмотри.
Или вот.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
#include #include using namespace std; enum ConsoleColor { Black = 0, Blue = 1, Green = 2, Cyan = 3, Red = 4, Magenta = 5, Brown = 6, LightGray = 7, DarkGray = 8, LightBlue = 9, LightGreen = 10, LightCyan = 11, LightRed = 12, LightMagenta = 13, Yellow = 14, White = 15 }; // устанавливает цвет текста и подложки в консоли void SetColor(int text, int background) HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdOut, (WORD)((background 4) // устанавливает цвет текста и подложки в консоли void SetColor(int text, ConsoleColor/*int*/ background) HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hStdOut, (WORD)((background 4) int main() { for (int i = 0; i 15; i++) { for (int j = 0; j 15; j++) { SetColor( i, Red); cout " Hello. "; SetColor( 15, j); cout " [" i "][" j "]\n"; } } system("PAUSE"); return 0; }
Регистрация: 12.09.2009
Сообщений: 25
Сообщение было отмечено как решение
Решение
Спасибо за ответ, но это немного не то что я искала.
Здесь фон меняеться только под буквами..а я хочу чтобы весь экран был однотонным и не черным.
Поскажите, пожалуйста, как сделать это.
Добавлено через 23 минуты
Оказалось все очень просто..
В глобальной области пишем строчку
const int NotUsed = system( "color 20" );
2 - значение цвета фона, 0 - значение цвета текста
Расшифровка цветов:
0 = Black 8 = Gray
1 = Blue 9 = Light Blue
2 = Green A = Light Green
3 = Aqua B = Light Aqua
4 = Red C = Light Red
5 = Purple D = Light Purple
6 = Yellow E = Light Yellow
7 = White F = Bright White
Цветовое оформление консольного вывода
Теперь несколько примеров. Все это можно опробовать, введя в консольном окне echo -e "текст примера" .
Ввод | Результат |
\x1b[31mTest\x1b[0m | |
\x1b[37;43mTest\x1b[0m | |
\x1b[4;35mTest\x1b[0m |
Обратите внимание, что во всех трех случаях после слова Test идет последовательность \x1b[0m, которая просто сбрасывает стиль оформления на стандартный.
Комплексный пример использования:
\x1b[1;31mСтрока\x1b[0m с \x1b[4;35;42mразными\x1b[0m \x1b[34;45mстилями\x1b[0m \x1b[1;33mоформления\x1b[0m |
Хорошая раскраска вывода часто значительно облегчает восприятие информации. Так что пробуйте и экспериментируйте.
P.S. Также об этом и некотором другом можно прочитать в man console_codes . Спасибо Riateche за подсказку.
Команда COLOR - установить цвет символов и фона консоли Windows
Команда COLOR задает цвет символов и цвет фона в окне консоли .
Формат командной строки:
COLOR [цвет фона][цвет текста]
Цвет задается шестнадцатеричной цифрой, Старший бит определяет яркость, а последующие биты - цвет :
Бит 0 - яркость
Бит 1 - красный ( R )
Бит 2 - зеленый ( G )
Бит 3 - синий ( B )
По умолчанию, используются белые буквы на черном фоне - цвет фона = 0 , цвет символов =7. Значения битов задают комбинацию цветов, так например, для желтого цвета используется установка битов 1 и 2 ( Красный и Зеленый). Команда для установки яркого синего цвета ( 9 ) на желтом фоне ( 6 ) : color 69
То же, но на ярком желтом фоне:
color F0 - черные символы на ярком белом фоне, color 0F - наоборот, белые яркие символы на черном фоне. .
Каждая цифра может иметь следующие значения:
Если в команде COLOR задана только одна цифра, то она определяет цвет символов на черном фоне (значение цвета фона воспринимается как 0 ):
COLOR 1 - синие буквы на черном фоне, как в команде COLOR 01
Если аргумент не указан, команда восстанавливает исходный набор цветов, каким он был на момент запуска CMD.EXE. Этот набор определяется из значения ключа /T, если он был задан при запуске интерпретатора CMD.EXE, или из значения параметров реестра, определяющих пользовательские настройки для интерпретатора команд:
HKEY_LOCAL_MACHINE\ SOFTWARE\ Microsoft \Command Processor\ DefaultColor - для всех пользователей.
HKEY_CURRENT_USER\ Software\ Microsoft\ Command Processor\ DefaultColor - для текущего пользователя. Значения параметров из раздела пользователя более приоритетны, по сравнению с параметрами раздела HKEY_LOCAL_MACHINE
Если параметр DefaultColor имеет значение по умолчанию ( REG_DWORD 0x00000000 ), то цветовой набор определяется значением параметра
HKEY_CURRENT_USER\ Console\ ScreenColors .
Команда COLOR возвращает значение кода ошибки ERRORLEVEL равный 1 при попытке вызова этой команды с совпадающими значениями цвета текста и цвета фона, например - COLOR 00 .