Kolory w konsoli

Stronę tą wyświetlono już: 316 razy

W Windowsie istnieje możliwość zmiany koloru tekstu oraz tła tekstu. Niestety większość tych kolorów jest mocno nieprzyjemna dla oka, ale cóż poradzić. Oto kod małego programu, który pokazuje mechanizm ustawiania kolorów:

Listing 1
  1. #include <iostream>
  2. #include <windows.h>
  3. using namespace std;
  4. // Kody pierwszych 16-stu kolorów tekstu:
  5. // 1 czarny tekst na czarnym tle
  6. // 1 ciemno niebieski tekst na czarnym tle
  7. // 2 ciemno zielony tekst na czarnym tle
  8. // 3 zielono-niebieski tekst na czarnym tle
  9. // 4 ciemno czerwony tekst na czarnym tle
  10. // 5 magenta ciemna tekst na czarnym tle
  11. // 6 oliwkowy tekst na czarnym tle
  12. // 7 jasny szary tekst na czarnym tle
  13. // 8 szary tekst na czarnym tle
  14. // 9 niebieski tekst na czarnym tle
  15. // 10 zielony tekst na czarnym tle
  16. // 11 jasno niebieski tekst na czarnym tle
  17. // 12 czerwony tekst na czarnym tle
  18. // 13 magenta tekst na czarnym tle
  19. // 14 żółty tekst na czarnym tle
  20. // 15 biały tekst na czarnym tle
  21. // 16 czarny na ciemno niebieskim tle
  22. int main(){
  23. setlocale(LC_CTYPE, "Polish");
  24. cout<<"Kolory konsoli uzyskiwane za pomocą funkcji SetConsoleTextAttribute"<<endl<<endl;
  25. for(int i = 0; i < 256; i++){
  26. SetConsoleTextAttribute( // ta funkcja ustawia kolor tekstu i tła
  27. GetStdHandle(STD_OUTPUT_HANDLE), // pobieranie standardowego uchwytu wyjścia konsoli
  28. i // kod koloru (dotyczy koloru tła jak i tekstu
  29. );
  30. cout<<"Kolor dla wartości: "<<i<<endl;
  31. }
  32. SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
  33. cout<<endl<<"Wciśnij enter, aby zamknąć program...";
  34. cin.get();
  35. }

Wartości od 0 do 15 oznaczają tekst z czarnym podświetleniem i zmieniającym się kolorem tekstu (opis w powyższym kodzie programu). Po przekroczeniu wartości 15 otrzymywane będą kombinacje kolorów tła i kolorów tekstu w sekwencjach po 16 elementów dla każdego koloru tła.

Komentarze