更改控制台应用的背景颜色C++
Change background color of C++ console app
如果我想使用绿色、红色、蓝色以外的颜色,如何更改控制台应用的前景色? 下面是我代码的一部分:
case GreenFlag:
indicator = GreenFlag;
SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), BACKGROUND_GREEN);
cout << "Green message" << endl;
break;
case OrangeFlag:
indicator = OrangeFlag;
// SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), BACKGROUND_ORANGE);
cout << "Orange message" << endl;
break;
case RedFlag:
indicator = RedFlag;
SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), BACKGROUND_RED);
cout << "Red message" << endl;
break;
case WhiteFlag:
indicator = WhiteFlag;
// SetConsoleTextAttribute(GetStdHandle (STD_OUTPUT_HANDLE), BACKGROUND_WHITE);
cout << "White message" << endl;
break;
etc...
你问:
如何使用绿色,红色,蓝色以外的颜色?
您可以组合标志以创建新颜色:
应用程序可以将前台常量和背景常量组合到 实现不同的颜色。例如,以下组合 在蓝色背景上产生明亮的青色文本。
FOREGROUND_BLUE |FOREGROUND_GREEN |FOREGROUND_INTENSITY | BACKGROUND_BLUE
如果未指定背景常量,则背景为黑色,并且 如果未指定前景常量,则文本为黑色。为 示例,以下组合在白色上生成黑色文本 背景。
BACKGROUND_BLUE |BACKGROUND_GREEN |BACKGROUND_RED
除此之外,您可以在每个字符上单独设置颜色和/或修改屏幕缓冲区属性:
每个屏幕缓冲区字符单元格存储 用于绘制前景(文本)和背景的颜色 细胞。应用程序可以为每个字符单元格设置颜色数据 单独,将数据存储在 CHAR_INFO每个单元格的结构。每个文本的当前文本属性 屏幕缓冲区用于随后写入或回显的字符 通过高级功能。
应用程序可以使用 GetConsoleScreenBufferInfo 来确定 屏幕缓冲区的当前文本属性和 设置控制台文本属性函数来设置字符属性。 更改屏幕缓冲区的属性不会影响 以前写过的字符。这些文本属性不会影响 由低级控制台 I/O 函数写入的字符(例如 WriteConsoleOutput 或 WriteConsoleOutputCharacter 函数),其中 显式指定写入的每个单元格的属性 或保持属性不变。
有关文档和示例,请参阅:https://learn.microsoft.com/en-us/windows/console/using-the-high-level-input-and-output-functions
- 在特定时间内更改 QLabel 的背景颜色
- 更改包含 QButton 的 Qlayout 的背景颜色
- 如何为使用创建窗口创建的窗口创建自定义背景颜色
- MFC 更改 CListCtrl 背景颜色
- 如何仅设置 QTabWidget 背景颜色样式表
- 为什么不能使用 setData() 在 QTreeView 中设置单元格的背景颜色?
- 在另一个小部件中更改QWidget的背景颜色
- 同一图像中的反转文本和背景颜色
- 使用winapi使用按钮更改窗口的背景颜色
- 当在QTableView上丢失焦点时,失去背景颜色
- 当鼠标越过按钮时,我可以更改按钮背景颜色吗?
- 在加载页面时,如何为iwebbrowser2设置背景颜色
- 更改子分类Cstatic控制的背景颜色
- 使用 DirectX 11 插值背景颜色?
- 10'000 行后控制台中的 C++ 背景颜色错误
- 如何设置按钮的背景颜色,包括复选框按钮
- 更改控制台应用的背景颜色C++
- 如何通过按Fl_Button更改Fl_Window的背景颜色
- QTreeView 项目悬停/基于当前颜色选择的背景颜色
- 如何更改可检查的QPushButton后代的背景颜色