Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Zmienna koloru w WinApi

Ostatnio zmodyfikowano 2014-01-11 17:35
Autor Wiadomość
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:

C/C++
#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 ); // Zmienna Text_Color ma odpowiadać za wprowadzenie nazwy koloru
    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.
P-101862
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
P-101863
pekfos
» 2014-01-11 17:22:04
Ta funkcja przyjmuje liczbę, a nie tekst. Poza tym, nie można wywoływać main().
P-101864
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. :)
P-101866
« 1 »
  Strona 1 z 1