是在 windows 控制台 (c++) 中获得更多颜色的方法吗?
Is way to get more colors in windows console (c++)?
是否可以在 windows 控制台 (c++) 中获得更多颜色?
“更多”是指 RGB 颜色,我试过:
CONSOLE_SCREEN_BUFFER_INFOEX info;
info.cbSize = sizeof(CONSOLE_SCREEN_BUFFER_INFOEX);
HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfoEx(hcon, &info);
info.ColorTable[0] = 0x505050;
info.ColorTable[1] = 0xcccccc;
SetConsoleScreenBufferInfoEx(hcon, &info);
SetConsoleTextAttribute(hcon, 01);
但是我一次只能用16种颜色
来自控制台 API 上的一些文档,特别是与 Virtual Terminal Sequences for Extended Color 有关的文档:
Some virtual terminal emulators support a palette of colors greater than the 16 colors provided by the Windows Console. For these extended colors, the Windows Console will choose the nearest appropriate color from the existing 16 color table for display.
基于此,我假设 Windows 控制台不支持超过 16 种颜色。如果我不得不猜测,这是一个 backwards-compatibility 限制与假设只有 16 种颜色的程序交互。
如果您想要更多,最好不要使用 Windows 控制台。如果这不可能,那么您总共只能使用 16 个。
是否可以在 windows 控制台 (c++) 中获得更多颜色? “更多”是指 RGB 颜色,我试过:
CONSOLE_SCREEN_BUFFER_INFOEX info;
info.cbSize = sizeof(CONSOLE_SCREEN_BUFFER_INFOEX);
HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfoEx(hcon, &info);
info.ColorTable[0] = 0x505050;
info.ColorTable[1] = 0xcccccc;
SetConsoleScreenBufferInfoEx(hcon, &info);
SetConsoleTextAttribute(hcon, 01);
但是我一次只能用16种颜色
来自控制台 API 上的一些文档,特别是与 Virtual Terminal Sequences for Extended Color 有关的文档:
Some virtual terminal emulators support a palette of colors greater than the 16 colors provided by the Windows Console. For these extended colors, the Windows Console will choose the nearest appropriate color from the existing 16 color table for display.
基于此,我假设 Windows 控制台不支持超过 16 种颜色。如果我不得不猜测,这是一个 backwards-compatibility 限制与假设只有 16 种颜色的程序交互。
如果您想要更多,最好不要使用 Windows 控制台。如果这不可能,那么您总共只能使用 16 个。