利用SetConsoleTextAttribute函数设置控制台颜色
2016-04-10 11:43
513 查看
利用SetConsoleTextAttribute函数设置控制台颜色 控制台单调的颜色只有黑白两种,看起来多少难免有些单调。在没学图形化编程之前,每天看着控制台程序难免会枯燥无味。 不过,利用SetConsoleTextAttribute函数可以设置控制台的前景色和背景色。 闲言少叙,书归正传。 ①效果图:(颜色可以混合,遵循配色原理) #include <windows.h> #include <iostream> using namespace std; int main() { HANDLE hOut; hOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_GREEN); cout << "This text is yellow." << endl; SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_BLUE); cout << "This text is cyan." << endl; SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_RED); cout << "This text is magenta." << endl; SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); cout << "This text is white." << endl; return 0; } ②效果图:(明暗颜色) #include <windows.h> #include <iostream> using namespace std; int main() { HANDLE hOut; hOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hOut, FOREGROUND_RED); cout << "Red " << flush; SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_INTENSITY); cout << "Red" << endl; SetConsoleTextAttribute(hOut, FOREGROUND_GREEN); cout << "Green " << flush; SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_INTENSITY); cout << "Green" << endl; SetConsoleTextAttribute(hOut, FOREGROUND_BLUE); cout << "Blue " << flush; SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_INTENSITY); cout << "Blue" << endl; SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_GREEN); cout << "Yellow " << flush; SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY); cout << "Yellow" << endl; SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_BLUE); cout << "Cyan " << flush; SetConsoleTextAttribute(hOut, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY); cout << "Cyan" << endl; SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_RED); cout << "Magenta " << flush; SetConsoleTextAttribute(hOut, FOREGROUND_BLUE | FOREGROUND_RED | FOREGROUND_INTENSITY); cout << "Magenta" << endl; SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE); cout << "White " << flush; SetConsoleTextAttribute(hOut, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY); cout << "White" << endl; return 0; } ③背景颜色: #include <windows.h> #include <iostream> using namespace std; int main() { HANDLE hOut; hOut = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(hOut, BACKGROUND_RED); cout << "Red " << flush; SetConsoleTextAttribute(hOut, BACKGROUND_RED | BACKGROUND_INTENSITY); cout << "Red " << endl; SetConsoleTextAttribute(hOut, BACKGROUND_GREEN); cout << "Green " << flush; SetConsoleTextAttribute(hOut, BACKGROUND_GREEN | BACKGROUND_INTENSITY); cout << "Green " << endl; SetConsoleTextAttribute(hOut, BACKGROUND_BLUE); cout << "Blue " << flush; SetConsoleTextAttribute(hOut, BACKGROUND_BLUE | BACKGROUND_INTENSITY); cout << "Blue " << endl; SetConsoleTextAttribute(hOut, BACKGROUND_RED | BACKGROUND_GREEN); cout << "Yellow " << flush; SetConsoleTextAttribute(hOut, BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_INTENSITY); cout << "Yellow " << endl; SetConsoleTextAttribute(hOut, BACKGROUND_GREEN | BACKGROUND_BLUE); cout << "Cyan " << flush; SetConsoleTextAttribute(hOut, BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_INTENSITY); cout << "Cyan " << endl; SetConsoleTextAttribute(hOut, BACKGROUND_BLUE | BACKGROUND_RED); cout << "Magenta " << flush; SetConsoleTextAttribute(hOut, BACKGROUND_BLUE | BACKGROUND_RED | BACKGROUND_INTENSITY); cout << "Magenta " << endl; SetConsoleTextAttribute(hOut, BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE); cout << "White " << flush; SetConsoleTextAttribute(hOut, BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_INTENSITY); cout << "White " << endl; return 0; } 原文出处:http://user.qzone.qq.com/289065406/blog/1367389973 |
相关文章推荐
- Java中删除指定文件夹文件夹下面有内容也删除使用递归方案
- 结对编程——四则运算
- java基础-----2016.4.10
- Scrapy设置之Feeds
- 如何取消代理的设置
- 简单模拟Hibernate写自己的Session类
- LruCache详解之 Android 内存优化
- 淘品牌遭受挤压,看新农哥如何卷土重来
- Android 5.0 新特性之RecyclerView
- linux内核分析第七次实验
- Java继承中的转型及其内存分配
- Autorelease Pool
- 9. 数据保存库
- 9. 数据保存库
- 共同学习Java源码--常用数据类型--String(十四)
- 如何逃过taint droid的跟踪
- Android学习第六周_SQLite和ContentProvider
- fragment的生命周期
- 最流行的编程语言JavaScript能做什么?
- hdu1069 LIS 变形