【发布时间】:2013-06-12 02:29:12
【问题描述】:
我知道一点如何在 Win32 C++ 控制台中做颜色。但这并不是真正有效的。例如:
SYSTEM("color 01")
大大减慢您的流程。另外:
HANDLE h = GetStdHandle ( STD_OUTPUT_HANDLE );
WORD wOldColorAttrs;
CONSOLE_SCREEN_BUFFER_INFO csbiInfo;
/*
* First save the current color information
*/
GetConsoleScreenBufferInfo(h, &csbiInfo);
wOldColorAttrs = csbiInfo.wAttributes;
/*
* Set the new color information
*/
SetConsoleTextAttribute ( h, FOREGROUND_RED );
效果很好,但颜色不多。另外,FOREGROUND_RED 是深红色的。
所以我想问的是,有没有像CLR属性Console::ForegroundColor这样设置的方法,所以你可以使用ConsoleColor枚举中的任何颜色?
【问题讨论】:
-
您是否尝试过设置
FOREGROUND_INTENSITY标志以使其呈鲜红色?例如:SetConsoleTextAttribute( h, FOREGROUND_RED | FOREGROUND_INTENSITY ) -
可行,但我仍然想知道是否有任何方法可以获得更多颜色,也许是调色板?
-
Console 仅支持 16 种颜色,由 FOREGROUND_RED、FOREGROUND_BLUE、FOREGROUND_GREEN 和 FOREGROUND_INTENSITY 组合而成。
-
有16种颜色。从颜色表中检索实际颜色值。可由用户在系统菜单中编辑。您可以在代码中更新它,SetConsoleScreenBufferEx() 函数。