程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C語言控制台窗口圖形界面編程(三)

C語言控制台窗口圖形界面編程(三)

編輯:關於C語言

<知識分享>   在這裡介紹一個設置文本屬性的函數,原型如下   BOOL SetConsoleTextAttribute(   // 設置WriteConsole等函數的字符屬性   HANDLE hConsoleOutput,          // 句柄   WORD wAttributes                // 文本屬性   );              順便提一下文本屬性,其實就是顏色屬性,有背景色和前景色(就是字符的顏色)兩類,每一類只提供三原色(紅,綠,藍)和加強色(灰色,可與其他顏色搭配使用,使顏色變亮,後面會提到)。最後還有一個反色(不太清楚這個到底怎麼用,很奇葩的東西)。示例程序如下:   #include <stdio.h>   #include <stdlib.h>   #include <windows.h>   #include <conio.h>   /*  基本文本屬性  FOREGROUND_BLUE 藍色  FOREGROUND_GREEN 綠色  FOREGROUND_RED 紅色  FOREGROUND_INTENSITY 加強  BACKGROUND_BLUE 藍色背景  BACKGROUND_GREEN 綠色背景  BACKGROUND_RED 紅色背景  BACKGROUND_INTENSITY 背景色加強  COMMON_LVB_REVERSE_VIDEO 反色  */      const WORD FORE_BLUE   = FOREGROUND_BLUE;           //藍色文本屬性   const WORD FORE_GREEN  = FOREGROUND_GREEN;          //綠色文本屬性   const WORD FORE_RED    = FOREGROUND_RED;            //紅色文本屬性   const WORD FORE_PURPLE = FORE_BLUE | FORE_RED;      //紫色文本屬性   const WORD FORE_CYAN   = FORE_BLUE | FORE_GREEN;    //青色文本屬性   const WORD FORE_YELLOW = FORE_RED | FORE_GREEN;     //黃色文本屬性   const WORD FORE_GRAY   = FOREGROUND_INTENSITY;      //灰色文本屬性   const WORD BACK_BLUE   = BACKGROUND_BLUE;           //藍色背景屬性   const WORD BACK_GREEN  = BACKGROUND_GREEN;          //綠色背景屬性   const WORD BACK_RED    = BACKGROUND_RED;            //綠色背景屬性   const WORD BACK_PURPLE = BACK_BLUE | BACK_RED;      //紫色背景屬性   const WORD BACK_CYAN   = BACK_BLUE | BACK_GREEN;    //青色背景屬性   const WORD BACK_YELLOW = BACK_RED | BACK_GREEN;     //黃色背景屬性   const WORD BACK_GRAY   = BACKGROUND_INTENSITY;      //灰色背景屬性      int main()   {       HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE);    //獲得標准輸出設備句柄       CONSOLE_SCREEN_BUFFER_INFO csbi;                        //定義窗口緩沖區信息結構體       GetConsoleScreenBufferInfo(handle_out, &csbi);          //獲得窗口緩沖區信息       SetConsoleTextAttribute(handle_out, FORE_BLUE);       printf("藍色字符\n");       SetConsoleTextAttribute(handle_out, FORE_RED);       printf("紅色字符\n");       SetConsoleTextAttribute(handle_out, FORE_GREEN);       printf("綠色字符\n");       SetConsoleTextAttribute(handle_out, FORE_PURPLE);       printf("紫色字符\n");       SetConsoleTextAttribute(handle_out, FORE_CYAN);       printf("青色字符\n");       SetConsoleTextAttribute(handle_out, FORE_YELLOW);       printf("黃色字符\n");       SetConsoleTextAttribute(handle_out, FORE_GRAY);       printf("灰色字符\n");       SetConsoleTextAttribute(handle_out, FORE_GREEN | FORE_BLUE | FORE_RED);       printf("白色字符\n");       SetConsoleTextAttribute(handle_out, BACK_BLUE);       printf("藍色背景\n");       SetConsoleTextAttribute(handle_out, BACK_RED);       printf("紅色背景\n");       SetConsoleTextAttribute(handle_out, BACK_GREEN);       printf("綠色背景\n");       SetConsoleTextAttribute(handle_out, BACK_PURPLE);       printf("紫色背景\n");       SetConsoleTextAttribute(handle_out, BACK_CYAN);       printf("青色背景\n");       SetConsoleTextAttribute(handle_out, BACK_YELLOW);       printf("黃色背景\n");       SetConsoleTextAttribute(handle_out, BACK_GRAY);       printf("灰色背景\n");       SetConsoleTextAttribute(handle_out, BACK_BLUE | BACK_RED | BACK_GREEN);       printf("白色背景\n");       SetConsoleTextAttribute(handle_out, BACK_GREEN | FORE_RED); //示例:綠色背景紅色字符       printf("綠色背景與紅色字符的混合\n");       SetConsoleTextAttribute(handle_out, FOREGROUND_INTENSITY | FORE_RED);   //示例:亮紅色字符       printf("亮色的生成,與加強色融合\n");       return 0;  

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved