多语言展示
当前在线:1030今日阅读:126今日分享:42

[控制台(1)] 设置文本的前景色和背景色[TZZ]

大家好!今天我准备给大家介绍一下“在Windows控制台中设置文本的前景色和背景色的方法”。在Windows控制台中,可以通过API函数SetConsoleTextAttribute设置之后输入文本的前景色和背景色。如果你觉得这篇教程有帮助,请为我投上宝贵的一票,谢谢!如果你希望每天都能见到一篇干货教程,就请给我个“关注”我吧!44Visual Studio 2017安装教程
工具/原料

已安装Visual Studio 2017(或以上版本);

方法/步骤
1

启动VS2017软件新建一个名为“ConsoleDemo1”的“Windows控制台应用程序”项目(具体创建方法见引用经验);

2

在打开的“ConsoleDemo1.cpp”文件中,包含“Windows.h”头文件。然后在main函数中加入暂停执行的语句“::system('pause')”。代码添加完毕后,调试运行程序。在弹出的控制台窗口中,会见到“请按任意键继续…”的字样,按下任意键或关闭控制台,结束调试;

3

在main函数中追加打印文本前景色的代码。在新增的代码中,通过GetStdHandle函数获得了控制台的标准输出句柄。然后调用SetConsoleTextAttribute函数将获得的标准输出句柄的文本前景色设置为蓝色、绿色和红色并分别输出测试文本。代码编写完毕后,直接调试运行程序。在弹出的控制台中,可以见到分别以蓝色、绿色和红色显示的文本内容。这里有一点需要注意,每次调用SetConsoleTextAttribute函数之后,调用printf输出的语句才会安装之前设置的文本颜色显示(比如:最后一条文本也是以红色显示的);

4

结束控制台程序返回到main函数中,继续追加“打印高亮前景色”的测试代码。在Windows系统中,除了定义有RGB分量常量外,还有一个用于表示高亮前景色的常量“FOREGROUND_INTENSITY”(当然,也有一个用于高亮背景色的常量“BACKGROUND_INTENSITY”)。新代码编写完毕后,调试运行程序。在弹出的控制台中,可以见到最后输出的高亮蓝色文本;

5

结束控制台程序返回到main函数中,继续追加“打印背景色”的测试代码。这里需要注意,如果只设置了背景色,那么前景色采用的就是0值,即黑色文本。代码编写完毕后,调试运行程序,在弹出的控制台中,可以见到带背景色的输出问题。留意绿色背景那一行,它是设置了前景色的效果;

6

如果你也看过这些常量(FOREGROUND_BLUE)对应的值,你会发现它们是采用位定义的,即分别以4字节整数的每一位表示一个标记值,比如:0x01, 0x02, 0x04等(以二进制查看更加清楚,以16进制查看,它们成2倍增长)。基于这一点,可以确定前景色和合成的最小值(0)和最大值(FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED)(背景色类似);

7

结束控制台调试并返回到main函数中,添加一个循环,输出从0到FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED(即数字7)的颜色值和测试文本。代码编写完毕后,调试运行程序。在弹出的控制台窗口中,可以见到以这些颜色显示的文本和对应的颜色值;

8

如果为上面输出的前景色分别加上增强标记,那么可以得到这些颜色对应的增强色;

9

结束控制台程序返回到main函数中,继续增加打印“循环输出增强色”的代码并调试运行程序。在弹出的控制台中,可以见到高亮色列表。如果将之前的前景色列表结合起来,可以得到完整的颜色表;

10

获得背景色列表的方法与之前介绍的相同,我就不累述了。下一章中,我将给大家介绍封装这一功能的方法。Enjoy!

推荐信息