有没有办法在Windows控制台(C++)中获得更多颜色?

问题描述 投票:0回答:1

有没有办法在 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 种颜色。

c++ windows colors console-application
1个回答
2
投票

来自控制台 API 的一些文档,特别是与 扩展颜色的虚拟终端序列相关的文档:

某些虚拟终端模拟器支持的颜色调色板大于 Windows 控制台提供的 16 种颜色。对于这些扩展颜色,Windows 控制台将从现有的 16 种颜色表中选择最接近的合适颜色进行显示。

基于此,我假设 Windows 控制台不支持超过 16 种颜色。如果我不得不猜测,这是与假设只有 16 种颜色的程序交互的向后兼容性限制。

如果您想要更多,最好不要使用 Windows 控制台。如果这是不可能的,那么您就只剩下 16 个了。

© www.soinside.com 2019 - 2024. All rights reserved.