Zmiana kolorów c++, powrót do koloru standardowego
Ostatnio zmodyfikowano 2016-01-10 20:18
Kleszczykb Temat założony przez niniejszego użytkownika |
Zmiana kolorów c++, powrót do koloru standardowego » 2016-01-10 17:13:30 Znalazłem na forum funkcje jak zmienić kolor i udało mi się ją użyć,niestety nie mam pojęcia jak teraz zrobić kolejny napis już w kolorze standardowym, ktoś może wyjasnić? oto kod na którym testowałem zmienianie kolorów #include <windows.h> #include <iostream> #include <cstdlib> using namespace std; main() { HANDLE hOut; hOut = GetStdHandle( STD_OUTPUT_HANDLE ); string napis = "Haha zmieniam kolor "; cout << napis << endl; SetConsoleTextAttribute( hOut, FOREGROUND_RED | FOREGROUND_INTENSITY ); cout << napis << endl; hOut = GetStdHandle( STD_OUTPUT_HANDLE ); SetConsoleTextAttribute( hOut, 10 ); cout << napis << endl; return 0; } |
|
jankowalski25 |
» 2016-01-10 17:58:19 |
|
Kleszczykb Temat założony przez niniejszego użytkownika |
» 2016-01-10 18:00:24 i dzięki tej lekcji umiem już zmieniać kolor co tez widać w tym kodzie, natomiast nie wiem jak powrócić do koloru standardowego |
|
jankowalski25 |
» 2016-01-10 18:02:05 Przecież w tej lekcji masz podany przykład: SetConsoleTextAttribute( hOut, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_RED ); cout << "Mozna powiedzieć ze ten napis jest standartowy" << endl; |
|
|
DejaVu |
» 2016-01-10 18:15:27 Nie możesz poeksperymentować z parametrami tej funkcji? |
|
Monika90 |
» 2016-01-10 18:51:56 Można odczytać początkowe kolory za pomocą GetConsoleScreenBufferInfo, a później je przywrócić. Na przykład: #include <windows.h> #include <iostream>
struct attr { WORD attributes; friend std::ostream & operator <<( std::ostream & out, attr a ) { out.flush(); SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), a.attributes ); return out; } };
struct restore_attributes { WORD attributes; restore_attributes() { CONSOLE_SCREEN_BUFFER_INFO info; GetConsoleScreenBufferInfo( GetStdHandle( STD_OUTPUT_HANDLE ), & info ); attributes = info.wAttributes; } restore_attributes( restore_attributes && ) = delete; ~restore_attributes() { SetConsoleTextAttribute( GetStdHandle( STD_OUTPUT_HANDLE ), attributes ); } };
int main() { restore_attributes on_exit; attr red { FOREGROUND_RED | BACKGROUND_BLUE }; attr blue { FOREGROUND_BLUE | BACKGROUND_RED }; attr black { 0 }; std::cout << red << "Hello" << black << ',' << blue << "World!" << std::endl; }
|
|
Kleszczykb Temat założony przez niniejszego użytkownika |
» 2016-01-10 20:18:27 Dzięki za pomoc, Monika90 poziom tego co napisałaś narazie przerasta moją znajomość C++ |
|
« 1 » |