Zmienna koloru w WinApi
Ostatnio zmodyfikowano 2014-01-11 17:35
Mentaris Temat założony przez niniejszego użytkownika |
Zmienna koloru w WinApi » 2014-01-11 17:13:49 Witam, panie i panowie. Problem moj polega na tym ze chce dodac funkcje do programu w konsoli, by uzytkownik w ustawieniach mogł zmienic kolor tekstu programu. Wszystko zostaje zapisane do pliku z ustawieniamy, przykładowo 0 to standardowy szary kolor, 1 czerwony, a 2 jeszcze inny. Wszystko było by ok, tylko że nie da sie zapisać zmiennej w miejscu podania nazwy koloru. By lepiej zobrazować mój problem, pokaże wam na prostym przykładzie użycia kodu odpowiadającego za zmiane koloru, ze zmienna która by odpowiadala za ustawienie koloru: #include <iostream> #include <windows.h> string Text_Color = ""; using namespace std; int main() { HANDLE hOut; hOut = GetStdHandle( STD_OUTPUT_HANDLE ); int a = 0; cout << "Dostepne kolory"; do { cout << "[1] szary"; cout << "[2] czerwony\n"; cin >> a; if( a == 1 ) { Text_Color = "0x0007"; } if( a == 2 ) { Text_Color = "0x0004"; } else { break; } } while( true ); SetConsoleTextAttribute( hOut, Text_Color ); cout << "Kolor tekstu zostal zmieniony" << endl; cin.get(); return main(); } Jako że ta funkcja nie działa, chciałem sie spytać, jak sprawić bym mógł wprowadzic zmienna do tego kodu? Albo jesli jest inny sposob na to by uzytkownik decydował jaki kolor ma być w konsoli, prosze o podanie go. Z góry bardzo dziękuje za pomoc. |
|
kubawal |
» 2014-01-11 17:16:51 Albo jesli jest inny sposob na to by uzytkownik decydował jaki kolor ma być w konsoli, prosze o podanie go. |
Ikonka w lewym górnym rogu konsoli->Właściwości->Kolory |
|
pekfos |
» 2014-01-11 17:22:04 Ta funkcja przyjmuje liczbę, a nie tekst. Poza tym, nie można wywoływać main(). |
|
Mentaris Temat założony przez niniejszego użytkownika |
» 2014-01-11 17:35:16 A no tak, kurde przepraszam za gafe, myslalem ze gdy int będzie miał wartosc np 0x0007 to wyjdzie error przez x, wszystko juz działa. Tak dla innych którzy moze są nieobeznani, wystarczy zmienić zmienna string na int i usunac cudzyslow. Dziekuje za pomoc, pozdrawiam. :) |
|
« 1 » |