欢迎来到天天文库
浏览记录
ID:34066613
大小:55.47 KB
页数:4页
时间:2019-03-03
《vc控制台颜色设置》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、VC控制台颜色设置通常控制台都是白字黑底的,千篇一律不免单调。适当的在控制台中加入一些彩色可以让人耳目一新,本文介绍如何使用系统API接口去修改控制台的文字和背景颜色。主要用到如下二个函数:得至ijstandardinput,standardoutput,orstandarderror的设备句柄:HANDLEGetStdHandle(DWORDnStdHandle);参数有:STD_INPUT_HANDLE,STD_OUTPUT_HANDLE及STD_ERROR_HANDLEo传入STD_OUTPUT_HANDLE
2、就可以得至ij控制台输出设备的句柄。设置控制台设备的属性BOOLSetConsoleTextAttribute(HANDLEhConsoleOutput,WORDwAttributes);第——个参数为控制台standardinput,standardoutput,orstandarderror的设备句柄第二个参数用来设备设备的属性,这里详细介绍下表示颜色的参数。先看下颜色的种类:在XP系统控制台一共有16种文字颜色,16种背景颜色,可以通过文字颜色+背景颜色*0x10来设置控制台的颜色。已经定义好的颜色常量如下:
3、文字颜色使用如下组合:FOREGROUND_BLUE0x0001//textcolorcontainsblue.FOREGROUND_GREEN0x0002//textcolorcontainsgreen.FOREGROUNDRED0x0004//textcolorcontainsred.FOREGROUNDJNTENSITY0x0008//textcolorisintensified.高亮颜色背景颜色使用如下组合(其实就是上面值*0x10):BACKGROUNDBLUE0x0010//backgroundcolo
4、rcontainsblue.BACKGROUNDGREEN0x0020//backgroundcolorcontainsgreen.BACKGROUND_RED0x0040//backgroundcolorcontainsred.BACKGROUNDJNTENSITY0x0080//backgroundcolorisintensified.上面的颜色可以任意组合,如知道黄色可以由红色和绿色组成,所以可以用FOREGROUND_GREEN
5、FOREGROUND_RED来表示黄色的文字。默认情况下控制台的文字颜色是口色
6、即用FOREGROUND_RED
7、FOREGROUND_GREEN
8、FOREGROUND_BLUE也可以直接用7表示,背景颜色为黑色即用0表示。下面是已经封装好的函数[cpp]viewplaincopyprint?1.//一共有16种文字颜色,16种背景颜色,组合有256种。传入的值应当小于2562.BOOLSetConsoleColor(WORDwAttributes)3-{4.HANDLEhConsole=GetStdHandle(STD_OUTPUT_HANDLE);5.if(hConsole==INVALI
9、D_HANDLE_VALUE)6.returnFALSE;7.7.returnSetConsoleTextAttribute(hConsole,wAttributes);8.}使用范例:[cpp]viewplaincopyprint?I.intmain()2{3.printf("控制台下默认文字背景颜色:”);4.printf("MoreWindows'll”);5.printf(Hn);6.6.SetConsoleColor(FOREGROUND_RED
10、FOREGROUNDJNTENSITY
11、BAC
12、KGROUND_BLUE);7.printf(“控制台下红字蓝底:”);1.printf("MoreWindows");2.printf("");11.3.SetConsoleColor(FOREGROUND_RED
13、FOREGROUND_GREEN
14、FOREGROUND_BLUE);4.printf("还原为控制台下默认文字背景颜色:”);5.printf("MoreWindowsM);6.printf("");7.return0;8.}输出结果如下:控制台下默认文字背景颜色:Mo
15、reWindows控制弓下红字蓝底:MoreWindows还原为控制台下默认文字背景颜色:MoreWindows可以将本篇内容与VC在控制台下显示进度结合成来,完成一个随着任务完成百分比的增加,文字颜色不断变化的彩色进度显示。相信比单一的白色文字要美观的多。
此文档下载收益归作者所有