kolor tła i tekstu

0

Tworzę menu, to jest kod który napisałem. Funkcja z parametrami otrzymuje 3 zmienne, dla nas tutaj istotne są tylko 2 czyli tło i kolor. Wartości przekazywane są do SetConsoleTextAttribute(uchwyt,kolor,tlo); ale wyskakuje błąd. Poprawnie wyglądać to powinno tak SetConsoleTextAttribute(uchwyt,kolor); czyli blokuje mi to możliwość zmiany albo tła, albo tekstu poprzez parametry, mógłbym zrobić tak SetConsoleTextAttribute(uchwyt,23); ale ogranicza to moje kodowanie gdyż musiał bym zrobić więcej funkcji tego typu. Jak to rozgryźć ?

#include <iostream>
#include <cstdlib>
#include <windows.h>

using namespace std;

////////////////////////////////////////////////////////////////
int dane();
int wczytywanie();
int wyswietlanie(int ktory, int kolor, int tlo);
////////////////////////////////////////////////////////////////

int main()
{
    char c1, c2;
    int y;
    string tablica[3];

    tablica[0] = "Info";
    tablica[1] = "Program";
    tablica[2] = "Wyjscie";

    system("cls");

    for (y = 0; y <= 2; y++) {
	wyswietlanie(y, 4, 4);
    }
}

int wyswietlanie(int ktory, int kolor, int tlo)
{
    HANDLE uchwyt;
    uchwyt = GetStdHandle(STD_OUTPUT_HANDLE);
    SetConsoleTextAttribute(uchwyt, kolor, tlo);
}
0

Przecież możesz te flagi połączyć.. Czyli np

SetConsoleTextAttribute(handle, FOREGROUND_BLUE | BACKGROUND_GREEN);

lub tak jak jest u ciebieSetConsoleTextAttribute(uchwyt, kolor | tlo);

1 użytkowników online, w tym zalogowanych: 0, gości: 1