已安装Visual Studio 2017(或以上版本);
已掌握“[控制台(1)] 设置文本的前景色和背景色[TZZ]”;
在VS2017软件中,新建一个名为“ConsoleDemo2”的“Windows控制台应用程序”项目(具体创建方法见引用经验);
在main函数中,添加“打印输出所有支持的前景色”的测试代码(记得包含Windows.h,同时使用system函数暂停代码执行),然后调试运行程序。程序启动后,在弹出的控制台窗口中,可以见到从0x00~0x0F对应的前景色(注:0x00表示黑色(默认颜色));
关闭控制台窗口返回到main函数中,在代码空白处输入前景色常量“FOREGROUND_BLUE”,然后在它上面点击鼠标右键并选择“转到定义”,打开此常量的定义文件;
在打开的“wincon.h”头文件中,可以见到控制台前景色和背景色对应的颜色标召信伐记。观察背景色常量,你会发现每个背景色常量对应的值等于前景色常量对应值的16倍,并且也是以2倍关系递增;
回到main函数中,追加“打印输出所有支持的背景色”的测试代码。这份代码中依旧采用0x00~0x0F,但是设置颜色值时,让i的值增大了16倍。代码编写完毕后,调试运行程序,在弹出的控制台中,可以见到打印出的背景颜色值;
关闭控制台返回到main函数中,继续追加“打印前景色和背景色”的测试代码,测试一下混合前景色和背景色的颜色值是否正确。代码编写完毕后,调试运行程序。在弹出的控制台中,可以见到正确的背景色与对应的前景色;
关闭控制台返回到源码文件中,在main函数之上定义一个名为“TxConsoleColor”的枚举类型,然后根据控制台中显示的颜色定义该枚举的元素,每个元素对应一种颜色;
在TxConsoleColor枚举类型之下,定义一个“tx_console_set_color”函数,该函数有3个参数,分别是控制台活动缓存句柄,前景色和背景色。在该函数实现中,直接调用了SetConsoleTextAttribute函数,然后传入了合成后的颜色值;
将main函数的输出争联前景色和背景色的代码注释掉,然后添加“通过tx_console_set_color函数输出所有支持的前景色和背景悦糟色”的测试代码。代码编写完毕后,调试运行程序。在弹出的控制台中,可以见到所有支持颜色的色块,看不到文字表示测试成功,因为测试代码中的文本前景色与背景色设置得一样;
至此,封装控制台颜色设置功能的代码介绍完毕。下一篇,我将继续给大家介绍一下“获取和设置控制台配置的方法”。Enjoy!