SetConsoleTextAttribute函数用法
函数 用法
2023-09-14 09:07:02 时间
1.介绍
很多时候,我们希望编写出能够拥有各种颜色的程序,能够让人眼前一亮,虽然system(color)函数可以设置颜色,但是system(color)函数设置的颜色只能有一种,这显然不是我们想要的结果,我们需要的是一个名为SetConsoleTextAttribute的函数。
SetConsoleTextAttribute()函数是一个API设置字体颜色和背景色的函数。参数表中使用两个属性(属性之间用,隔开),不同于system(color),SetConsoleTextAttribute()可以改变界面多种颜色,而system()只能修改为一种!。
2.头文件
<windows.h>
3.函数原型
BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);
4. 参数
HANDLE hConsoleOutput
consolehwnd = GetStdHandle(STD_OUTPUT_HANDLE)
GetStdHandle(nStdHandle)是返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出/错误的屏幕缓冲区的句柄。
其参数nStdHandle的值为下面几种类型的一种:
这里我们只需要使用STD_OUTPUT_HANDLE即可,
WORD wAttributes是用来设置颜色的参数,有三种写法
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x07);
//第二个参数填十六进制数字。
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
//直接填十进制数字。
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_BLACK | FOREGROUND_RED);
//BACKGROUND代表背景,FOREGROUND代表前景,
4.三种写法演示
(1)使用十六进制设置参数
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x06);
printf("花狗\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x07);
printf("花狗\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 0x08);
printf("花狗\n");
结果如下:
其他颜色数值:
(2)使用十进制设置参数
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 10);
printf("花狗\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 12);
printf("花狗\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 14);
printf("花狗\n");
结果如下:
其他颜色数据:
(3)使用函数已定义好的参数
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_GREEN | FOREGROUND_RED);
printf("花狗\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_GREEN | FOREGROUND_BLUE);
printf("花狗\n");
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_RED | BACKGROUND_GREEN);
printf("花狗\n");
其他颜色数值:
好了,其他数值各位有兴趣的自行研究。
相关文章
- hive开窗函数over(partition by ......)用法
- hive 中窗口函数row_number,rank,dense_ran,ntile分析函数的用法
- PHP error_log() 函数
- php正则替换函数的整理
- Python回调函数用法实例详解
- lua的通用print函数
- OpenCV每日函数 特征检测和描述模块(3) ORB类(关键点检测器和描述符提取及匹配)
- [YOLOv7/YOLOv5系列算法改进NO.10]损失函数改进为SIOU
- vue3组合式Composition API之ref函数的具体用法
- Python编程语言学习:python语言中快速查询python自带模块&函数的用法及其属性方法、如何查询某个函数&关键词的用法、输出一个类或者实例化对象的所有属性和方法名之详细攻略
- Python语言学习之lambda:lambda函数的简介、使用方法、案例大全之详细攻略
- Python语言学习之字母L开头函数使用集锦:logging日志用法之详细攻略
- Qt 静态函数中的信号和槽问题
- 数学建模学习(84):多元函数的3D可视化,终于被我总结出来了,数学真是太美了
- Vue学习之--------编程式路由导航、缓存路由组件、新的钩子函数(4)(2022/9/5)
- 【Android Gradle 插件】自定义 Gradle 任务 ③ ( Gradle 自定义任务创建方法 Project#task 函数 | Task#doFirst 函数用法 )
- 【Android 逆向】Android 进程注入工具开发 ( 注入代码分析 | 获取 远程 目标进程 中的 /system/lib/libc.so 动态库中的 mmap 函数地址 )
- Lua中调用C函数(lua-5.2.3)
- strip函数
- D3DXVec2Maximize 函数
- D3DXVec3Transform 函数
- Windows API一日一练(54)WriteFile和ReadFile函数
- 转 PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)
- MDX 中 drilldownmember函数的理解和用法
- 9个EXCEL舍入函数公式的用法和实例
- Matlab使用笔记(二): 多函数用法