本帖最后由 981013 于 2014-1-26 13:19 编辑
- BOOL SetConsoleTextAttribute( HANDLE hConsoleOutput,WORD wAttributes);
复制代码第一个参数就是用GetStdHandle(HANDLE GetStdHandle(DWORD nStdHandle);参数有:STD_INPUT_HANDLE(输入),STD_OUTPUT_HANDLE(输出)及STD_ERROR_HANDLE(错误)。)取到的设备句柄,第二个参数用来设置设备的属性。 在XP系统 控制台一共有16种文字颜色,16种背景颜色,可以通过:文字颜色 + 背景颜色 * 0x10 来设置控制台的颜色。 已经定义好的颜色常量如下: 文字颜色使用如下组合: FOREGROUND_BLUE 0x0001 FOREGROUND_GREEN 0x0002 FOREGROUND_RED 0x0004 FOREGROUND_INTENSITY 0x0008 背景颜色使用如下组合(其实就是上面值*0x10): BACKGROUND_BLUE 0x0010 BACKGROUND_GREEN 0x0020 BACKGROUND_RED 0x0040 BACKGROUND_INTENSITY 0x0080 上面的颜色可以任意组合,如知道黄色可以由红色和绿色组成,所以可以用FOREGROUND_GREEN | FOREGROUND_RED来表示黄色的文字。
默认情况下控制台的文字颜色是白色即用FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE也可以直接用7表示,背景颜色为黑色即用0表示。
下面是已经封装好的函数: - BOOL SetConsoleColor(WORD wAttributes)
- {
- HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
- if (hConsole == INVALID_HANDLE_VALUE)
- return FALSE;
- return SetConsoleTextAttribute(hConsole, wAttributes);
- }
复制代码
资料来自互联网搜索结果
|