PS:我正在使用 Code::blocks
没有可用的 conio2.h
我想通过 windows API 将字体颜色设置为黑色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), XXXXXX);
XXXXXX应该填什么?
PS:我正在使用 Code::blocks
没有可用的 conio2.h
我想通过 windows API 将字体颜色设置为黑色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), XXXXXX);
XXXXXX应该填什么?
从文档中:
前景属性指定文本颜色。背景属性指定用于填充单元格背景的颜色。其他属性与 DBCS 一起使用。
应用程序可以结合前景和背景常量来实现不同的颜色。例如,以下组合会在蓝色背景上生成亮青色文本。
FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE\
如果未指定背景常量,则背景为黑色,如果未指定前景常量,则文本为黑色。例如,以下组合在白色背景上生成黑色文本。
BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED
字体颜色由几个可能的属性组合表示:
FOREGROUND_BLUE Text color contains blue.
FOREGROUND_GREEN Text color contains green.
FOREGROUND_RED Text color contains red.
FOREGROUND_INTENSITY Text color is intensified.
在您的情况下,由于您希望前景色为黑色,因此您根本不需要传递任何属性:
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0);
正如 Ben Voigt 在下面的评论中指出的那样,这将导致黑色背景上的黑色文本。您可能希望指定背景属性的组合以使文本可读。例如(白底黑字):
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);