1

PS:我正在使用 Code::blocks
没有可用的 conio2.h

我想通过 windows API 将字体颜色设置为黑色

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), XXXXXX);

XXXXXX应该填什么?

4

2 回答 2

1

文档中

前景属性指定文本颜色。背景属性指定用于填充单元格背景的颜色。其他属性与 DBCS 一起使用。

应用程序可以结合前景和背景常量来实现不同的颜色。例如,以下组合会在蓝色背景上生成亮青色文本。

FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE\

如果未指定背景常量,则背景为黑色,如果未指定前景常量,则文本为黑色。例如,以下组合在白色背景上生成黑色文本。

BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED
于 2013-08-29T13:39:46.230 回答
1

字体颜色由几个可能的属性组合表示:

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);
于 2013-08-29T13:39:13.780 回答