Função SetConsoleTextAttribute para alterar o texto e a cor de fundo

A linguagem C nem sempre é "branco sobre fundo preto", ela também pode ser colorida, você pode chamar Windows.ha SetConsoleTextAttributefunção no arquivo de cabeçalho para alterar o texto e a cor de fundo.

O formulário de chamada é:

SetConsoleTextAttribute( HANDLE hConsoleOutput, WORD wAttributes );

hConsoleOutputIndica o identificador do buffer do console, que pode ser obtido através de GetStdHandle(STD_OUTPUT_HANDLE); wAttributesIndica a cor do texto e cor de fundo.

Não explorarei o significado de HANDLE aqui e o explicarei em detalhes no desenvolvimento do Windows posteriormente.

WORDNas windows.hdefinições, equivalente a unsigned short, o uso dos 4 bits inferiores representam a cor do texto (primeiro plano), os quatro bits superiores representam a cor do fundo do texto, de modo que seu valor é xx. x é um número hexadecimal, ou seja, 0~Fambos podem ser usados ​​e combinados à vontade.

As cores representadas por 0 ~ F são as seguintes:

0 = preto 8 = cinza 1 = azul claro 9 = azul
2 = verde claro A = verde 3 = azul lago B = verde claro  
C = vermelho 4 = vermelho claro 5 = roxo D
= roxo   claro 6 = amarelo E = amarelo claro 7 = branco F = branco brilhante

Por exemplo, defina o fundo como verde claro e o texto como vermelho:

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

Resultado final:


se você deseja apenas definir a cor do texto e manter o fundo preto, também pode fornecer apenas um número hexadecimal, por exemplo:

SetConsoleTextAttribute (hConsole, 0xC); // Definir a cor do texto para vermelho 
SetConsoleTextAttribute (hConsole, 0xF); // Definir a cor do texto para branco

Vejamos outro exemplo:

#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;
}

resultado da operação:

Acho que você gosta

Origin blog.csdn.net/qq_43629083/article/details/112982255
Recomendado
Clasificación