Изменение фона и цвета текста в консоли Windows, переполнение стека

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

    using namespace std;
#include<conio.h>
#include<stdlib.h>
#include <iostream>
#include <windows.h>
using namespace std;

//returns the current attributes
WORD GetConsoleTextAttribute (HANDLE hCon)
{
CONSOLE_SCREEN_BUFFER_INFO con_info;
GetConsoleScreenBufferInfo(hCon, &con_info);

return con_info.wAttributes;
}

int main (void)
{
system("color F1");

HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
const int saved_colors = GetConsoleTextAttribute(hConsole);SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_INTENSITY);
cout << "This text should be blue" << endl;
SetConsoleTextAttribute(hConsole, saved_colors);
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY);
cout << "This text should be green" << endl;
SetConsoleTextAttribute(hConsole, saved_colors);
getch();
return 0;
}

1

Решение

Сделай белый фон сам

WORD whiteBack = BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED | BACKGROUND_INTENSITY;
SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE | FOREGROUND_INTENSITY | whiteBack);
cout << "This text should be blue" << endl;
SetConsoleTextAttribute(hConsole, saved_colors);
SetConsoleTextAttribute(hConsole, FOREGROUND_GREEN | FOREGROUND_INTENSITY | whiteBack);
cout << "This text should be green" << endl;
0

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


По вопросам рекламы [email protected]