如何改变Win32 Console 程序显示颜色

    技术2022-05-19  23

    #include<windows.h>  #include<iostream>  using namespace std;  void SetColor(unsigned short ForeColor=0,unsigned short BackGroundColor=0)  {  HANDLE hCon=GetStdHandle(STD_OUTPUT_HANDLE);  SetConsoleTextAttribute(hCon,ForeColor|BackGroundColor);  }  int main()  {  int FC,BC;  for(BC=0;BC<=17;BC++)  {  for(FC=0;FC<=255;FC++)  {  SetColor(FC,BC);  std::cout<<FC<<','<<BC<<'/t';  SetColor(7,0);  if(FC==15)std::cout<<endl;  }  }  return 0;  }  眼花缭乱吧?下面简单讲一下:  在vc++用API函数GetStdHandle()和SetConsoleTextAttribute()来实现彩色背景及彩色文本.  下面说一下这两个函数声明及其参数的含义.首先说GetStdHandle(),其声明如下  HANDLE GetStdHandle(  DWORD nStdHandle  );  GetStdHandle()返回标准的输入、输出或错误的设备的句柄,也就是获得输入、输出/错误的屏幕  缓冲区的句柄. 其参数nStdHandle的值为下面几种类型的一种:  值 含义  STD_INPUT_HANDLE 标准输入的句柄  STD_OUTPUT_HANDLE 标准输出的句柄  STD_ERROR_HANDLE 标准错误的句柄  函数SetConsoleTextAttribute()的作用是在console程序设置输入或输出文本的文本颜色和背景颜  色.只有在此函数设置后才能显示彩色的文本.其函数原型为:  BOOL SetConsoleTextAttribute(  HANDLE hConsoleOutput, // console 屏幕缓冲区的句柄  WORD wAttributes // 文本及背景的颜色  );  如果函数设置文本及背景颜色成功,则返回非零;如失败返回零.其参数含义如下:  hConsoleOutput-------------console 屏幕缓冲区的句柄.  WORD wAttributes-----------文本及背景的颜色.  其文本与背景颜色可以是 FOREGROUND_BLUE, FOREGROUND_GREEN, FOREGROUND_RED, FOREGROUND_INTENSITY,  BACKGROUND_BLUE, BACKGROUND_GREEN, BACKGROUND_RED, and BACKGROUND_INTENSITY.  和用这几种颜色组合成的任意一种颜色,点有点类似于RGB


    最新回复(0)