logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Kolory w C? Czy mogę określić kolor tła lub liter?

takilogin 05 Maj 2006 23:40 12261 7
REKLAMA
  • #1 2596675
    takilogin
    Poziom 15  
    Posty: 214
    Pomógł: 3
    Ocena: 1
    Czy w programie napisanym w C mogę określić kolor tła czy kolor liter ???
  • REKLAMA
  • REKLAMA
  • Pomocny post
    #3 2597738
    GoAway
    Poziom 13  
    Posty: 80
    Pomógł: 10
    Ocena: 2
    textcolor(a) - zmiana koloru tekstu
    gdzie a jest typu int od 0 do 15 lub natychmiastowa liczba

    textbackground(a) - zmiana koloru tła
  • #4 2598325
    takilogin
    Poziom 15  
    Posty: 214
    Pomógł: 3
    Ocena: 1
    niestety to nie dziala :( Moze musze specjalna biblioteke zadeklarować ?
  • #5 2598523
    Faust
    Poziom 17  
    Posty: 135
    Pomógł: 22
    Ocena: 4
    Tutaj jest tak to zrobić w windowsie:
    
    #include<iostream>
    #include<windows.h>
    using namespace std;
    
    int main()
    {
    	WORD kolor;
    	kolor=0x00f5;
    	HANDLE uchwyt;
    	uchwyt=GetStdHandle(STD_OUTPUT_HANDLE);
    	SetConsoleTextAttribute(uchwyt,kolor);
    	cout << "test" << endl;
    	system("pause");
    }

    Drobny komentarz do koloru. Tutaj jest wykorzystywany tylko pierwszy bajt zmiennej kolor, czyli w tym przypadku f5. Przy czym starszy półbajt (f w tym przypadku) to kolor tła, a młodszy (5 w tym przypadku) kolor tekstu. W zależności od tego, jaki chcesz kolor tekstu i tła wystarczy zmodyfikować tylko te dwie cyfry.
    Starszy bajt zmiennej kolor służy do ustawiania innych parametrów, po dokładniejszy opis do msdn'a.
  • REKLAMA
  • #6 2598533
    ed-ek
    Poziom 34  
    Posty: 1814
    Pomógł: 275
    Ocena: 42
    Aby bezpośrednio korzystać w środowisku DOS z textcolor(...)textbackground(...) i korzystać ze środowiska graficznego przez BGI, musisz mieć Borlandc version3.1; do ściągnięcia z:
    http://sun.uos.ac.kr/download.htm
    Masz do dyspozycji rozbudowany help i w nim znajdziesz przykłady na np textcolor
  • REKLAMA
  • #7 2601872
    waski78
    Poziom 20  
    Posty: 398
    Pomógł: 26
    Ocena: 89
    Przykład który podałem w odnośniku komilowałem pod Dev C++ - metodą kopuj wklej bez zadnych zabiegów (WinXP).
  • #8 2601920
    ed-ek
    Poziom 34  
    Posty: 1814
    Pomógł: 275
    Ocena: 42
    waski78: masz dołączony nagłówek global.h; a popatrz jakie nagłówki zawiera global.h:
    #include <iostream.h> //cout & cin function
    #include <windows.h> //system functions
    #include <stdio.h> //main c library

    Jak widzisz nie korzystasz z fcji DOSu a Windows.

Podsumowanie tematu

LABEL_AI_GENERATED
W dyskusji poruszono możliwość zmiany koloru tekstu i tła w programach napisanych w języku C. Podano funkcje textcolor(int) i textbackground(int) do zmiany kolorów, gdzie argumenty to liczby całkowite od 0 do 15. Jednakże ich działanie wymaga odpowiedniej biblioteki, np. Borland C w wersji 3.1, która obsługuje funkcje DOS-owe i graficzne BGI. Dla środowiska Windows zaprezentowano przykład użycia funkcji WinAPI: GetStdHandle(STD_OUTPUT_HANDLE) oraz SetConsoleTextAttribute(HANDLE, WORD), gdzie wartość WORD koduje kolor tła (starszy półbajt) i kolor tekstu (młodszy półbajt). Przykład ten można kompilować w Dev C++ na systemie Windows XP. Wskazano również, że do korzystania z funkcji DOS-owych konieczne jest dołączenie odpowiednich nagłówków i bibliotek, a w Windows używa się innych mechanizmów. Podano linki do źródeł i przykładów kodu.
Podsumowanie AI na podstawie dyskusji. Może zawierać błędy.
REKLAMA