颜色
1 /* 2 颜色函数SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),前景色 | 背景色 | 前景加强 | 背景加强); 3 前景色:数字0-15 或 FOREGROUND_XXX 表示 (其中XXX可用BLUE、RED、GREEN表示) 4 前景加强:数字8 或 FOREGROUND_INTENSITY 表示 5 背景色:数字16 32 64 或 BACKGROUND_XXX蓝,绿,红三种颜色表示 6 背景加强: 数字128 或 BACKGROUND_INTENSITY 表示 7 主要应用:改变指定区域字体与背景的颜色 8 前景颜色对应值: 9 0=黑色 8=灰色 10 1=蓝色 9=淡蓝色 十六进制 11 2=绿色 10=淡绿色 0xa 12 3=湖蓝色 11=淡浅绿色 0xb 13 4=红色 12=淡红色 0xc 14 5=紫色 13=淡紫色 0xd 15 6=黄色 14=淡黄色 0xe 16 7=白色 15=亮白色 0xf 17 也可以把这些值设置成常量。 18 */ 19 #include <stdio.h> 20 #include <windows.h> 21 using namespace std; 22 void color(short x) //自定义函根据参数改变颜色 23 { 24 if(x>=0 && x<=15)//参数在0-15的范围颜色 25 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), x); //只有一个参数,改变字体颜色 26 else//默认的颜色白色 27 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7); 28 } 29 int main() 30 { 31 printf("此处为没调用颜色函数之前默认的颜色\n"); 32 //调用自定义color(x)函数 改变的颜色 33 color(0); printf("黑色0\n"); 34 color(1); printf("蓝色1\n"); 35 color(2); printf("绿色2\n"); 36 color(3); printf("湖蓝色3\n"); 37 color(4); printf("红色4\n"); 38 color(5); printf("紫色5\n"); 39 color(6); printf("黄色6\n"); 40 color(7); printf("白色7\n"); 41 color(8); printf("灰色8\n"); 42 color(9); printf("淡蓝色9\n"); 43 color(10); printf("淡绿色10\n"); 44 color(11); printf("淡浅绿色11\n"); 45 color(12); printf("淡红色12\n"); 46 color(13); printf("淡紫色13\n"); 47 color(14); printf("淡黄色14\n"); 48 color(15); printf("亮白色15\n"); 49 color(16); //因为这里大于15,恢复默认的颜色 50 printf("回到原来颜色\n"); 51 //直接使用颜色函数 52 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),13 | 8 | 128| 32); 53 printf("红色字体 前景加强 绿色背景 背景加强\n"); 54 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15 | 8 | 128 | 64); 55 printf("亮白色字体 前景加强 红色背景 背景加强\n"); 56 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15 | 8 | 128 | 32); 57 printf("亮白色字体 前景加强 红色背景 背景加强\n"); 58 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),15 | 8 | 128 | 64); 59 printf("亮白色字体 前景加强 红色背景 背景加强\n"); 60 61 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12 | 8 | 16 | 32 | 64); 62 printf("亮白色字体 前景加强 红色背景 背景加强\n"); 63 //声明句柄再调用函数 64 HANDLE JB = GetStdHandle(STD_OUTPUT_HANDLE);//创建并实例化句柄 65 SetConsoleTextAttribute(JB, 2 | 8); 66 printf("颜色及对应数字表:\n"); 67 for(int i = 0;i < 10;i ++){ 68 //color(16);printf(" "); 69 SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), i); 70 printf("%-3d", i); 71 color(16);printf(" "); 72 if(i % 16 == 0) printf("\n"); 73 } 74 color(16); 75 system("pause"); 76 return 0; 77 //类似的函数还有system("color XX");(X是十六进制0~F之间的数,不过这种函数改变的是整个画面,而不能让多处局部变色; 78 } 79