




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第C语言如何改变字体颜色目录废话不多说,先来看一下效果图后期代码补充效果图初学c的小伙伴可能已经对那个黑底白字的框有些厌倦了,不妨加点颜色,增加加可读性.
废话不多说,先来看一下效果图
/*
颜色函数SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),前景色|背景色|前景加强|背景加强);
前景色:数字0-15或FOREGROUND_XXX表示(其中XXX可用BLUE、RED、GREEN表示)
前景加强:数字8或FOREGROUND_INTENSITY表示
背景色:数字163264或BACKGROUND_XXX三种颜色表示
背景加强:数字128或BACKGROUND_INTENSITY表示
主要应用:改变指定区域字体与背景的颜色
前景颜色对应值:
0=黑色8=灰色
1=蓝色9=淡蓝色十六进制
2=绿色10=淡绿色0xa
3=湖蓝色11=淡浅绿色0xb
4=红色12=淡红色0xc
5=紫色13=淡紫色0xd
6=黄色14=淡黄色0xe
7=白色15=亮白色0xf
也可以把这些值设置成常量。
#includestdio.h
#includewindows.h
voidcolor(shortx)//自定义函根据参数改变颜色
if(x=0x=15)//参数在0-15的范围颜色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);//只有一个参数,改变字体颜色
else//默认的颜色白色
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),7);
intmain()
printf("此处为没调用颜色函数之前默认的颜色\n");
//调用自定义color(x)函数改变的颜色
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");
color(16);//因为这里大于15,恢复默认的颜色
printf("回到原来颜色\n");
//直接使用颜色函数
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_RED|FOREGROUND_INTENSITY|BACKGROUND_GREEN|BACKGROUND_INTENSITY);
printf("红色字体前景加强绿色背景背景加强\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15|8|128|64);
printf("亮白色字体前景加强红色背景背景加强\n");
//声明句柄再调用函数
HANDLEJB=GetStdHandle(STD_OUTPUT_HANDLE);//创建并实例化句柄
SetConsoleTextAttribute(JB,2|8);
printf("颜色及对应数字表:\n");
for(inti=0;i1000;i++){
//color(16);printf("");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),i);
printf("%-3d",i);
color(16);printf("");
if(i%16==0)printf("\n");
color(16);
return0;
//类似的函数还有system("colorXX");(X是十六进制0~F之间的数,不过这种函数改变的是整个画面,而不能让多处局部变色;
后期代码补充
SetConsoleTextAttribute是Windows系统中一个可以设置控制台窗口字体颜色和背景色的计算机函数,该函数被广泛应用于软件开发中。使用此函数前,必须包含Windows.h头文件,即#includeWindows.h。
函数定义:
BOOLSetConsoleTextAttribute(HANDLEhConsoleOutput,WORDwAttributes);
参数详解:
hConsoleOutput:控制台屏幕缓冲区的句柄。句柄必须具有GENERIC_READ访问权限。CreateFile、CreateConsoleScreenBuffer和GetStdHandle返回的句柄具有GENERIC_READ和GENERIC_WRITE访问权限。有效的访问权限包括GENERIC_READ和GENERIC_WRITE通用访问权限。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
返回值:
如果函数成功,则返回值非零。如果函数失败,则返回值为零。要获取扩展的错误信息,请调用GetLastError。
#includestdio.h
#includestdlib.h
#includewindows.h
x的取值:
属性意义实际数值(十进制、十六进制、二进制)
FOREGROUND_BLUE前景色包含蓝色10x10000000000000001
FOREGROUND_GREEN前景色包含绿色20x20000000000000010
FOREGROUND_RED前景色包含红色40x40000000000000100
FOREGROUND_INTENSITY前景色加强80x80000000000001000
BACKGROUND_BLUE背景色包含蓝色160x100000000000010000
BACKGROUND_GREEN背景色包含绿色320x200000000000100000
BACKGROUND_RED背景色包含红色640x400000000001000000
BACKGROUND_INTENSITY背景色加强1280x800000000010000000
COMMON_LVB_LEADING_BYTE前导字节2560x1000000000100000000
COMMON_LVB_TRAILING_BYTE尾随字节5120x2000000001000000000
COMMON_LVB_GRID_HORIZONTAL顶部水平网格10240x4000000010000000000
COMMON_LVB_GRID_LVERTICAL左竖直网格20480x8000000100000000000
COMMON_LVB_GRID_RVERTICAL右竖直网格40960x10000001000000000000
COMMON_LVB_REVERSE_VIDEO前景和背景反转163840x40000100000000000000
COMMON_LVB_UNDERSCORE下划线327680x80001000000000000000
前景由x的二进制的前四位的值决定:
0001、0010、0100分别表示蓝、绿、红,而1000表示前景加强,于是前景颜色共有2^4=16种可能。
同理背景颜色是第5到8位
voidcolor(intx){
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);
intmain(){
printf("\n\n二进制颜色对照表:\n");
charstr[8];
for(inti=0;i256;i++){
//调用颜色函数
color(i);
//获得i的2进制的值
itoa(i,str,2);//2即是代表转换为2进制
printf("%08s",str);
//恢复默认的颜色
color(7);
printf("");
//每行输出16个
if((i+1)%16==0)
printf("\n");
printf("\n十进制颜色对照表:\n");
for(inti=0;i256;i++){
color(i);
printf("%3d",i);
color(7);
printf("");
if((i+1)%16==0)
printf("\n");
printf("\n十六进制颜色对照表:\n");
for(inti=0;i256;i++){
color(i);
//color(i|COMMON_LVB_GRID_HORIZONTAL|COMMON_LVB_GRID_LVERTICAL|COMMON_LVB_GRID_RVERTICAL|COMMON_LVB_UNDERS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 三创团队理论知识培训课件
- 高效备考教师招聘面试:叶县招教面试题库攻略
- 浙江商会面试高级文档解析:新面试题目及答案
- 大班语言教案《黄雨伞》及活动反思
- 大班数学教案买玩具
- 三方合作协议书合同范本
- 劳务合同需要签几张协议
- 代理拟定合同协议书范本
- 合同费用增加的补充协议模板
- 期货从业资格之期货投资分析考试押题卷附参考答案详解【典型题】
- 2024墙面原位加固修复技术规程
- 航空航天概论
- 电力生产防止机网协调及风电机组、光伏逆变器大面积脱网事故的重点要求
- 校园智能化工程项目投标文件
- LY/T 1788-2008木材性质术语
- 齿廓啮合基本定律
- GB/T 19722-2005洗净绵羊毛
- GB 27742-2011可免于辐射防护监管的物料中放射性核素活度浓度
- 第三单元名著导读《朝花夕拾-二十四孝图》课件(15张PPT) 部编版语文七年级上册
- 新版《工会基础知识》试题库及答案汇总-上(单选、多选题)
- 2022年液化气站项目可行性研究报告
评论
0/150
提交评论