windows 有提供一套conosle API来读写console缓存,字体、颜色、创建console等的, 但颜色格式没有找到任意颜色的接口,只能用系统自定义几种颜色。不过在命令行窗体可以看到系统是支持完全自定义 红 绿蓝颜色分量的的颜色的,不知道系统为什么自己不开放,好像vista里面的api有支持了,不过MSDN也不做详细解释。
#include "stdafx.h"
#include <windows.h>
using namespace std ;
int _tmain(int argc, _TCHAR* argv[])
{
HANDLE hConsole;
int k;
hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
// you can loop k higher to see more color choices
for(k = 1; k < 255; k++) {
// pick the colorattribute k you want
SetConsoleTextAttribute(hConsole, k);
cout << k << " I want to be nice today!" << endl;
}
cin.get(); // wait
return 0;
}