控制台操作之字体颜色

必须有#include<windows.h>

void color(short x)                   //设置颜色
{
		SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x);
		//SetConsoleTextAttribute()函数是一个API设置字体颜色和背景色的函数
}

然后通过调用color函数来控制控制台屏幕字体颜色。
其中:
color(0);
printf(“黑色\n”);
color(1);
printf(“蓝色\n”);
color(2);
printf(“绿色\n”);
color(3);
printf(“湖蓝色\n”);
color(4);
printf(“红色\n”);
color(5);
printf(“紫色\n”);
color(6);
printf(“黄色\n”);
color(7);
printf(“白色\n”);
color(8);
printf(“灰色\n”);
color(9);
printf(“淡蓝色\n”);
color(10);
printf(“淡绿色\n”);
color(11);
printf(“淡浅绿色\n”);
color(12);
printf(“淡红色\n”);
color(13);
printf(“淡紫色\n”);
color(14);
printf(“淡黄色\n”);
color(15);
printf(“亮白色\n”);
在0-15范围修改的是字体的颜色超过15改变的是文本背景色。
当然还有其它的颜色修改方式:如下(参考了百度百科对SetConsoleTextAttribute的解释
---------------------------------------------------------分割线---------------------------------------------------------

SetConsoleTextAttribute是API设置控制台窗口字体颜色和背景色的函数。

原型定义:BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);

GetStdHandle是一个Windows API函数。
语法:
HANDLE GetStdHandle( DWORD nStdHandle );
GetStdHandle()返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出/错误的屏幕缓冲区的句柄。
值:
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函数是靠一个字节的低四来控制前景色,高四位来控制背景色。

#include <stdio.h>
#include <windows.h>                                                 //使用SetConsoleTextAttribute函数一定要加上windows.h
int main()
{ 
HANDLE color;                                                            //创建句柄
color=GetStdHandle(STD_OUTPUT_HANDLE);        //设置句柄值 实例化句柄
SetConsoleTextAttribute(color,BACKGROUND_INTENSITY|BACKGROUND_BLUE|FOREGROUND_GREEN);                                                                  //设置背景为高亮蓝色,暗绿色字体。但是用句柄名替换了参数
printf("这是暗绿色!\n"); 
system("pause");                                            //调用cmd暂停命令
}

根据此修改字体及背景颜色:

属性含义
FOREGROUND_BLUE文字颜色包含蓝色
FOREGROUND_GREEN文字颜色包含绿色
FOREGROUND_RED文字颜色包含红色
FOREGROUND_INTENSITY文字颜色加强
BACKGROUND_BLUE背景颜色包含蓝色
BACKGROUND_GREEN背景颜色包含绿色
BACKGROUND_RED背景颜色包含红色
BACKGROUND_INTENSITY背景颜色加剧
COMMON_LVB_LEADING_BYTE前导字节
COMMON_LVB_TRAILING_BYTE尾随字节
COMMON_LVB_GRID_HORIZONTAL顶部水平
COMMON_LVB_GRID_LVERTICAL左垂直
COMMON_LVB_GRID_RVERTICAL正确的垂直
COMMON_LVB_REVERSE_VIDEO反转前景和背景属性
COMMON_LVB_UNDERSCORE下划线

关于调色,网上有很多就不缀叙了。百度吧~~~

SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),BACKGROUND_INTENSITY |FOREGROUND_INTENSITY | FOREGROUND_RED|BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE);
puts("这是白色背景 红色字体");

根据十六进制修改字体及背景颜色:
颜色属性由两个十六进制数字指定: 第一个为背景,第二个则为前景。每个数字可以为以下任何值之一:
0 = 黑色 8 = 灰色
1 = 蓝色 9 = 淡蓝色
2 = 绿色 A = 淡绿色
3 = 湖蓝色 B = 淡浅绿色
4 = 红色 C = 淡红色
5 = 紫色 D = 淡紫色
6 = 黄色 E = 淡黄色
7 = 白色 F = 亮白色

参考链接:
来自一个初中生的技术贴
Consoles

  • 0
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值