人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

用VC++完成console程序顯示彩色文本

用VC++完成console程序顯示彩色文本

更新時間:2022-09-07 文章作者:未知 信息來源:網絡 閱讀次數:

用vc++寫console程序時,整天對著黑紙白字的屏幕,感覺很郁悶吧?很多人想用CONIO.H/GRAPHICS.H中的一些函數來實現,卻發現VC++根本沒有這些頭文件。當然了CONIO.H/GRAPHICS.H是BORLAND TC/BC專有的頭文件,所以vc++中根本沒有這些文件。把這兩個頭文件COPY過來,然后用??答案當然是否定的。其實VC++中也有相關的函數來實現console彩色文本及背景的顯示。下面我們就看看VC++如何實現彩色文本。

  在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)至于如何組合,我不知道 。
  下面,我們就來寫一個類似又TC下settextcolor相似功能的函數SetColor(),不過下面的函數可以同時設置背景顏色,函數的實現如下:
void SetColor(unsigned short ForeColor,unsigned short BackGroundColor)
  {
  HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);
    //獲得緩沖區句柄
  SetConsoleTextAttribute(hCon,ForeColor BackGroundColor);
    //設置文本及背景顏色
  };  


  有了上面的函數我們就可以實現彩色文本和背景了,給自己的程序一個與眾不同的輸出和提示。下面我們來實現一個彩色的Hello World!。程序如下:

#include
    //GetStdHandle和SetConsoleTextAttribute在頭文件windows.h中
  #include
  using namespace std;
  void SetColor(unsigned short ForeColor=4,unsigned short BackGroundColor=0)
  //給參數默認值,使它  
  //可以接受0/1/2個參數
  {
  HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); //本例以輸出為例
  SetConsoleTextAttribute(hCon,ForeColor BackGroundColor);
  };

  int main()
  {

  SetColor();
  std::cout<<"Hello world!"<   SetColor(40,30);
  std::cout<<"Hello world!"<   return 0;
  }  


  這樣一個彩色的Hello world!程序就寫好了。

  當然,你可以用這個函數讓在你的程序在適當的地方顯示一些特殊的輸出或提示信息,這樣你的程序就“與眾不同”了。 

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 元阳县| 扬中市| 嘉峪关市| 池州市| 徐汇区| 岚皋县| 布拖县| 曲松县| 莱西市| 驻马店市| 长兴县| 沈阳市| 改则县| 新田县| 盘山县| 读书| 启东市| 彭水| 海城市| 新田县| 福泉市| 文安县| 峡江县| 布拖县| 白水县| 英山县| 遵义县| 读书| 丰宁| 闻喜县| 汉沽区| 阿拉善左旗| 上思县| 剑川县| 成都市| 和龙市| 石门县| 天台县| 南投市| 兰考县| 盐城市|