Win32控制台應用程式改變輸出顏色

2021-04-23 16:16:27 字數 2254 閱讀 2783

一、用到的函式(獲得指向標準輸入,標準輸出和標準錯誤裝置的控制代碼)

1.getstdhandle:

handle getstdhandle(

dword nstdhandle// input, output, or error device );

value

meaning

std_input_handle

standard input handle

std_output_handle

standard output handle

std_error_handle

standard error handle如:

handle hconsole;

hconsole=getstdhandle(std_output_handle);

2.setconsoletextattribute

(設定控制台下前景色和前景色)

bool setconsoletextattribute(

handle hconsoleoutput,// handle to console screen buffer

wordwattributes// text and background colors );

wattributes

是word

型別,雙位元組,它的取值如下:

foreground_blue, foreground_green, foreground_red, foreground_intensity, background_blue, background_green, background_red, and background_intensity

它們在wincon.h

中的定義:

#define foreground_blue

0x0001 // text color contains blue.

#define foreground_green

0x0002 // text color contains green.

#define foreground_red

0x0004 // text color contains red.

#define foreground_intensity 0x0008 // text color is intensified.

#define background_blue0x0010 // background color contains blue.

#define background_green0x0020 // background color contains green.

#define background_red

0x0040 // background color contains red.

#define background_intensity 0x0080 // background color is intensified.

這和命令提示符中使用color命令的結果是一致的。

color

命令的使用說明如下:

顏色屬性由兩個十六進製制數字指定

-- 第乙個為背景,第二個則為前景。每個數字可以為以下任何值之一:

0 =

黑色8 = 灰色

1 =

藍色9 =

淡藍色

2 =

綠色a =

淡綠色

3 =

湖藍色b =

淡淺綠色

4 =

紅色c =

淡紅色

5 =

紫色d =

淡紫色

6 =

黃色e =

淡黃色

7 =

白色f =

亮白色

由此,我們得出:如果我們只是想簡單定義控制台下的輸出,只須指定

wattribute

的低位元組就行了,其中低位元組

低四位前景色(文字顏色)

高四位背景色

二、示例

如:指定控制台下背景色為黑色,前景色為淡綠色

#include

#include

void main()

這和命令提示符下:

color

0a的結果是一樣的,本人比較喜歡這一顏色,儲存這種屬性,則下次再次開啟命令提示符時,也是這種顏色。

如何隱藏win32控制台應用程式的視窗

有些時候,我們寫的win32控制台應用程式只是為了實現一些簡單的功能,並不希望出現乙個cmd視窗,此時 我們該怎麼做呢?下面是乙個簡單的方法,就是在程式開頭,引用標頭檔案之後加上這麼一句話,什麼意思呢?就是說,將程式指定為windows應用程式,並且指定其入口位址是main函式,為什麼要這麼做,因為...

Win32程式和控制台應用程式的專案互轉設定

一般情況下,如果是windows程式,那麼winmain是入口函式,在vs2010中新建專案為 win32專案 如果是dos控制台程式,那麼main是入口函式,在vs2010中新建專案為 win32控制台應用程式 而如果入口函式指定不當,很顯然c語言執行時找不到配合函式,它就會報告錯誤。修改設定適應...

win32視窗程式轉為控制台

windows支援兩種型別的程式,gui graphical user inte ce 和cui console user inte ce 他們是通過乙個叫載入器的東西進行載入,vs中只要修改聯結器 系統 子系統中的值,如果是gui則是 subsystem windows 如果是cui則是 subs...