1
2
3
4
|
BOOL
WINAPI SetConsoleTextAttribute(
_In_
HANDLE
hConsoleOutput,
// 控制台输出流句柄
_In_
WORD
wAttributes
// 设置属性
);
|
hConsoleOutput [输入参数]
控制台屏幕的输出流的句柄(handle to console screen buffer)。这个文件流的句柄必须有写入(GENERIC_READ)的权限。更多的信息,请查看MSDN上的Console Buffer Security and Access Rights。
wAttributes [输入参数]
具体常见设置属性如下:
属性 | 意义 |
---|---|
FOREGROUND_BLUE | 前景色包含 蓝色 |
FOREGROUND_GREEN | 前景色包含 绿色 |
FOREGROUND_RED | 前景色包含 红色 |
FOREGROUND_INTENSITY | 前景色加强 |
BACKGROUND_BLUE | 背景色包含 蓝色 |
BACKGROUND_GREEN | 背景色包含 绿色 |
BACKGROUND_RED | 背景色包含 红色 |
BACKGROUND_INTENSITY | 背景色加强 |
COMMON_LVB_GRID_HORIZONTAL | 顶部水平网格 |
COMMON_LVB_GRID_LVERTICAL | 左竖直网格 |
COMMON_LVB_GRID_RVERTICAL | 右竖直网格 |
COMMON_LVB_UNDERSCORE | 下划线 |
代码测试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
int
main()
{
HANDLE
hOut;
// 获取输出流的句柄
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
printf
(
"普通颜色看看\n"
);
SetConsoleTextAttribute(hOut,
FOREGROUND_GREEN |
// 前景色_绿色
FOREGROUND_INTENSITY );
// 前景色_加强
printf
(
"设置了浅绿色.\n"
);
printf
(
"并且完了之后就一直是浅绿色\n"
);
SetConsoleTextAttribute(hOut,
FOREGROUND_BLUE |
// 前景色_蓝色
FOREGROUND_INTENSITY |
// 前景色_加强
COMMON_LVB_UNDERSCORE);
// 添加下划线
printf
(
"文字蓝色,再加个下划线.\n"
);
SetConsoleTextAttribute(hOut,
FOREGROUND_RED |
// 前景色_红色
FOREGROUND_INTENSITY |
// 前景色_加强
BACKGROUND_BLUE );
// 背景色_蓝色
printf
(
"设置文字红色,背景蓝色\n"
);
SetConsoleTextAttribute(hOut,
FOREGROUND_RED |
// 前景色_红色
FOREGROUND_INTENSITY |
// 前景色_加强
COMMON_LVB_GRID_LVERTICAL );
// 网格_左_竖
printf
(
" 加 左 网格\n"
);
SetConsoleTextAttribute(hOut,
FOREGROUND_RED |
// 前景色_红色
FOREGROUND_INTENSITY |
// 前景色_加强
COMMON_LVB_GRID_RVERTICAL );
// 网格_右_竖
printf
(
" 加 右 网格\n"
);
SetConsoleTextAttribute(hOut,
FOREGROUND_RED |
// 前景色_红色
FOREGROUND_GREEN |
// 前景色_绿色
FOREGROUND_BLUE );
// 前景色_蓝色
printf
(
"改回白色\n"
);
system
(
"pause"
);
return
0;
}
|
具体配色,请参见下图:
例如紫色可以用 蓝色+红色 配出来:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
#include <windows.h>
#include <stdio.h> // for printf
#include <stdlib.h> // for system
int
main()
{
HANDLE
hOut;
// 获取输出流的句柄
hOut = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hOut,
FOREGROUND_RED |
// 前景色_红色
FOREGROUND_BLUE |
// 前景色_蓝色
FOREGROUND_INTENSITY);
// 加强
printf
(
" 红 + 蓝 = 紫色 ^_^\n"
);
system
(
"pause"
);
return
0;
}
|
再要配其他颜色的话,就要去查一些配色表了
This entry was posted in C/C++, Windows and tagged windows api, windows 编程 by lellansin. Bookmark the permalink.
One thought on “C语言 设置控制台字体颜色 SetConsoleTextAttribute”