一种方法是直接在程序上方栏杆点右键,然后属性处设置

优点是设置后一劳永逸,不需要像后面方法那样要自己把设置写入程序代码内

缺点是,一旦设置了就不能再改变了,程序从头到尾都是那种设置。

 

第二种方法是使用windows API函数里的system()

color /? 里面写的很清楚

颜色属性由两个十六进制数字指定 -- 第一个为背景,第二个则为前景。每个数字可以为以下任何值之一:

0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 湖蓝色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色

如调用 system("color 02") 则颜色会变为,黑底蓝字
优点是调用方便,只需要加一个函数即可
缺点是设置的是全局变量,也就是设置后,前面显示的文字以及以后出现的都会变为这个设置


第三种方法是SetConsoleTextAttribute()包含在头文件 windows.h
函数原型BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);

参数

consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE);
GetStdHandle(nStdHandle)是返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出/错误的屏幕缓冲区的句柄。
其参数nStdHandle的值为下面几种类型的一种:
含义
STD_INPUT_HANDLE 标准输入的句柄
STD_OUTPUT_HANDLE 标准输出的句柄
STD_ERROR_HANDLE 标准错误的句柄
wAttributes是用来设置颜色的参数:
wAttributes 颜色 对应的值
FOREGROUND_BLUE 字体颜色:蓝 1
FOREGROUND_GREEN 字体颜色:绿 2
FOREGROUND_RED 字体颜色:红 4
FOREGROUND_INTENSITY 前景色高亮显示 8
BACKGROUND_BLUE 背景颜色:蓝 16
BACKGROUND_GREEN 背景颜色:绿 32
BACKGROUND_RED
背景颜色:红
64
BACKGROUND_INTENSITY 背景色高亮显示 128
也就是说SetConsoleTextAttribute函数是靠一个字节的低四来控制前景色,高四位来控制背景色。
 
我仔细说明一下SetConsoleTextAttribute的第二个参数
  它是一个WORD型的变量,其实就是一个unsigned shot型
  范围为0~65535
  当值超过它时自己会出警告
十六位对应的输出总结如下:
  0透明1前景蓝2前景绿3前景红4前景高亮5背景蓝6背景绿7背景红8背景高亮
  9透明10透明11上划线12左划线13右划线14右划线15透明16透明

一些混搭颜色:
黑:0
白:red+green+blue
黄:red+green
青:green+blue
紫:red+blue

 posted on 2014-04-25 13:49  someblue  阅读(10616)  评论(0编辑  收藏  举报