啊哈磊_编程从这里起步
标题:
教程——不同文字设置不同的颜色和背景色
[打印本页]
作者:
rosynirvana
时间:
2014-9-30 01:32
标题:
教程——不同文字设置不同的颜色和背景色
控制台是操作系统提供的,那么对控制台进行编程操作自然就要通过系统提供的一组函数——WINAPI来进行了
首先要明白,在windows下面一个最基本的抽象是Handle,中文一般翻译成句柄。句柄指向分操作系统中不同的东西的,例如控制台窗口有句柄,桌面上的所有窗口都有不同的句柄,系统用句柄来区分不同的窗口。
为了告诉操作系统我们要进行操作的对象是控制台窗口,而不是其他窗口,就要获取控制台的句柄。
一种比较好的方式是读取标准输出流(unix抽象,请自己研究)绑定的窗口
HANDLE console = GetStdHandle( STD_OUTPUT_HANDLE);
复制代码
HANDLE是类型,函数的含义很容易从函数名推断出来
然后,使用SetConsoleTextAttribute函数更改颜色就行了,具体请看示例代码
#include <stdio.h>
#include <windows.h>
int main()
{
HANDLE console;
console = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(console, FOREGROUND_BLUE);
puts("blue");
system("pause");
SetConsoleTextAttribute(console, FOREGROUND_GREEN);
puts("green");
SetConsoleTextAttribute(console, FOREGROUND_RED);
puts("red");
SetConsoleTextAttribute(console, FOREGROUND_BLUE | FOREGROUND_GREEN);
puts("Aqua");
SetConsoleTextAttribute(console, FOREGROUND_BLUE | FOREGROUND_RED);
puts("purple");
SetConsoleTextAttribute(console, FOREGROUND_GREEN | FOREGROUND_RED);
puts("Yellow");
SetConsoleTextAttribute(console, FOREGROUND_RED | FOREGROUND_GREEN |
FOREGROUND_BLUE);
puts("White");
SetConsoleTextAttribute(console, FOREGROUND_BLUE | FOREGROUND_GREEN |
FOREGROUND_RED | BACKGROUND_GREEN);
puts("Green foreground white background");
return 0;
}
复制代码
作者:
卑微、_A7qxq
时间:
2014-12-17 12:43
挺好玩的 感觉应该再加上个getchar(); 防止闪退{:soso_e112:}
作者:
趣味的吃
时间:
2015-7-10 07:17
看懂了,是不是定义句柄后每次在更改控制台输出的颜色时输入[mw_shl_code=c,true]SetConsoleTextAttribute(定义的句柄, FOREGROUND_XX颜色的英文 | FOREGROUND_XX颜色的英文);[/mw_shl_code]就行了。输出应该会和美术中这两个颜色调和起来的一样。但这两句我有点迷糊[mw_shl_code=c,true]SetConsoleTextAttribute(console, FOREGROUND_BLUE | FOREGROUND_GREEN |
FOREGROUND_RED | BACKGROUND_GREEN); puts("Green foreground white background");”[/mw_shl_code]这两句中的四个颜色,分别是给背景和字体上色?如果是,又上的哪几个色呢?请给我一些指导。谢谢。
作者:
木木子
时间:
2018-6-3 18:31
看不懂诶
欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/)
Powered by Discuz! X3.2