C ++将字体颜色设置为黑色

时间:2013-08-29 13:34:26

标签: winapi windows-console

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

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

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), XXXXXX);

我应该在XXXXXX中填写什么?

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

来自the documentation

  

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

     

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

FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_INTENSITY | BACKGROUND_BLUE\
     

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

BACKGROUND_BLUE | BACKGROUND_GREEN | BACKGROUND_RED