改了下,为什么不行了??? 代码:[mw_shl_code=c,true]#include <stdio.h> #include <windows.h> void moshu() { printf("\n"); HANDLE handle = GetStdHandle(STD_OUTPUT_HANDLE); SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED); printf("把这句话颜色变成红色\n"); system("pause"); SetConsoleTextAttribute(handle, FOREGROUND_INTENSITY | FOREGROUND_RED | FOREGROUND_GREEN); printf("把这句话颜色变成黄色\n"); system("pause"); } int main() { char a; printf("今天我要给大家变一个魔术,请看:\n"); system("pause"); printf("下面魔术即将开始……\n"); system("pause"); printf("下面,我将会把下面的字变颜色……\n"); printf("大家信不信(Y/N)?"); scanf("%c",&a); if(a=='Y' || a=='y') { printf("好了,你到底看不看了?(Y/N)?"); scanf("%c",&a); if(a=='Y' || a=='y') { moshu(); } else { return; } } else { printf("好!你敢不信!(咬牙切齿中……)我现在就给你变!"); Sleep(3000); moshu(); } system("pause"); return 0; }[/mw_shl_code] |
{:soso_e179:}赞一个 |
本帖最后由 981013 于 2014-1-26 13:19 编辑
第一个参数就是用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表示。 下面是已经封装好的函数:
资料来自互联网搜索结果 |