首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >SetConsoleTextAttribute设置控制台文本属性

SetConsoleTextAttribute设置控制台文本属性

作者头像
大忽悠爱学习
发布2021-02-22 10:54:36
发布2021-02-22 10:54:36
5950
举报
文章被收录于专栏:c++与qt学习c++与qt学习

使用前包含头文件:#include<windows.h> 函数原型: BOOL SetConsoleTextAttribute(HANDLE hConsoleOutput, WORD wAttributes);

代码语言:javascript
复制
BOOL WINAPI SetConsoleTextAttribute(
  _In_ HANDLE hConsoleOutput,
  _In_ WORD   wAttributes
);

相关参数解释说明: 1.hConsoleOutput:控制台屏幕缓冲区的句柄

2.定义一个控制台屏幕缓冲区的句柄来获取标准输出的设备的句柄: HANDLE hConsoleOutput=GetStdHandle(STD_OUTPUT_HANDLE);

3. GetStdHandle(nStdHandle)是返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出/错误的屏幕缓冲区的句柄。

4.GetStdHandle(nStdHandle)该函数的参数值有一下几种类型:

含义

STD_INPUT_HANDLE

标准输入的句柄

STD_OUTPUT_HANDLE

标准输出的句柄

STD_ERROR_HANDLE

标准错误的句柄

4.wAttributes 用一个字节的WORD来指定文字背景颜色和文字颜色。

例如: WORD wd = FOREGROUND_RED | FOREGROUND_BLUE; //文本颜色为紫色

WORD wAttributes是用来设置颜色的参数,有三种写法: (1)十六进制设置参数

代码语言:javascript
复制
#include<iostream>
#include<conio.h>
#include<Windows.h>
using namespace std;
int main()
{
	HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(handle, 0x06);
	printf("大忽悠");
	SetConsoleTextAttribute(handle, 0x07);
	printf("喜欢");
	SetConsoleTextAttribute(handle, 0x08);
	printf("小朋友\n");
	_getch();
	return 0;
}

结果:

(2)十进制设置参数

代码语言:javascript
复制
#include<iostream>
#include<conio.h>
#include<Windows.h>
using namespace std;
int main()
{
	HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
	SetConsoleTextAttribute(handle, 3);
	printf("大忽悠");
	SetConsoleTextAttribute(handle, 6);
	printf("喜欢");
	SetConsoleTextAttribute(handle, 5);
	printf("小朋友\n");
	_getch();
	return 0;
}

结果

(3)使用函数已定义好的参数

代码语言:javascript
复制
#include<iostream>
#include<conio.h>
#include<Windows.h>
using namespace std;
int main()
{
	HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);
	WORD word1 = FOREGROUND_RED| FOREGROUND_INTENSITY;
	WORD word2 = FOREGROUND_INTENSITY | FOREGROUND_BLUE;
	WORD word3 = FOREGROUND_INTENSITY | FOREGROUND_RED;
	SetConsoleTextAttribute(handle, word1);
	printf("大忽悠");
	SetConsoleTextAttribute(handle, word2);
	printf("喜欢");
	SetConsoleTextAttribute(handle, word3);
	printf("小朋友");
	_getch();
	return 0;
}

结果:

其他颜色数值:

属性

含义

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

下划线

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/01/30 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档