テキストと背景色を変更するSetConsoleTextAttribute関数

C言語は、必ずしも「黒地に白」であるとは限りません。色を付けることもできます。Windows.hヘッダーファイルの下にあるSetConsoleTextAttribute関数を呼び出し、テキストと背景色変更できます

呼び出しフォームは次のとおりです。

SetConsoleTextAttribute( HANDLE hConsoleOutput, WORD wAttributes );

hConsoleOutputコンソールバッファのハンドルを示しますGetStdHandle(STD_OUTPUT_HANDLE)これは、;から取得できwAttributesます。テキストの色と背景色を示します。

ここではHANDLEの意味を追求しませんが、後で Windows開発 で詳しく説明ます

WORDwindows.hと同等の定義、unsigned short下位4ビットの使用は、テキスト(前景)色を表し、上位4ビットは、その値があるように、テキストの背景色を表しますxxxは16進数です。つまり、0~F両方を使用でき、自由に組み合わせることができます。

0〜Fで表される色は次のとおりです。

0 =黒8 =グレー1 =ライトブルー9 =ブルー
2 =ライトグリーンA =グリーン3 =レイクブルーB =ライトグリーン  
C =レッド4 =ライトレッド5 =パープルD
=ライトパープル  6 =イエローE =ライトイエロー7 =白F =明るい白

たとえば、背景を薄緑に設定し、テキストを赤に設定します。

#include <stdio.h>
#include <windows.h>
int main(){
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, 0x2C );
    puts("C语言中文网");
    return 0;
}

実行結果:


テキストの色のみを設定し、背景を黒のままにしたい場合は、次のように16進数のみを指定することもできます。

SetConsoleTextAttribute(hConsole、0xC); //テキストの色を赤に設定
SetConsoleTextAttribute(hConsole、0xF); //テキストの色を白に設定

別の例を見てみましょう:

#include <stdio.h>
#include <windows.h>
int main(){
    HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(hConsole, 0xC );
    puts("红色文字");
    SetConsoleTextAttribute(hConsole, 0xF );
    puts("白色文字");
    SetConsoleTextAttribute(hConsole, 2 );
    puts("淡绿色文字");
    return 0;
}

演算結果:

おすすめ

転載: blog.csdn.net/qq_43629083/article/details/112982255