搜索
查看: 1755|回复: 3
打印 上一主题 下一主题

[原创] 分享一个可以在《啊哈C》里面吧单句变颜色的代码

[复制链接]
楼主
发表于 2014-1-26 13:15:03 | 显示全部楼层
本帖最后由 981013 于 2014-1-26 13:19 编辑

  1. 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表示。

下面是已经封装好的函数:
  1. BOOL SetConsoleColor(WORD wAttributes)
  2. {
  3. HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
  4. if (hConsole == INVALID_HANDLE_VALUE)
  5. return FALSE;

  6. return SetConsoleTextAttribute(hConsole, wAttributes);
  7. }
复制代码

资料来自互联网搜索结果

评分

参与人数 1啊哈币 +3 收起 理由
李掌柜 + 3 神马都是浮云

查看全部评分

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表