Как изменить цвет фона всей консоли, не влияя на цвет текста в C ++ на ОС Windows

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

Проблема в том, что SetConsoleTextAttribute() Функция изменяет только цвет фона блока текста, но не всего окна консоли. Пока проблема с system("Color code") является то, что он также меняет цвет любого предварительно написанного текста.

что я хочу сделать, это:

 int main()
{
setColor("Red","Blue");
//custom function setColor() to set text color Red and Console's color Blue.

cout << "This is Red text on a Blue console window" << endl;

setColor("Yellow","Black"); /*now the whole console's color should turn Black, the color
of pre-written text above remains Red and the color of text
to follow should be Yellow.*/

cout << "This is Yellow text on a Black console window, The previous text is still Red";
return 0;
}

Я пытался смешать оба system() а также setConsoleTextAttribute функции для достижения этой цели, но мне не удалось сохранить цвет предварительно написанного текста при изменении цвета текста, чтобы следовать.

Итак, есть ли способ сделать функцию, которая делает то же самое, что и setColor() Функция сделала в этом примере?

0

Решение

Вам нужно будет реализовать это самостоятельно. Может помочь API консоли Windows, все функции задокументировано здесь.

Вы можете прочитать цвета отображаемых в данный момент символов с помощью ReadConsoleOutputAttributes, Вы можете изменить их на новый цвет фона с WriteConsoleOutputAttributes,

1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector