Benutzer Farben wählen lassen SetConsoleTextAttribute
-
Hallo, ich hab folgendes Problem:
Ich würde gerne eine Funktion schreiben die den Benutzer die Schrift und Hintergrundfarbe der Eingabeaufforderung auswählen lässt.
Ich weiss nicht genau wie ich die Auswahl vom Benutzer mit der Parametrierung der Funktion SetConsoleTextAttribute verknüpfen kann.#include <iostream>
#include <windows.h>
use namespace std;int main()
{
char hintergrund = '\0';
char vordergrund = '\0';
char test = '\0';cout << "Geben Sie die Hintergrundfarbe ein g:Grün, r:Rot, b:Blau :"<< endl;
cin >> hintergrund;
cout << "Geben Sie die Vordergrundfarbe ein g:Grün, r:Rot, b:Blau :"<< endl;
cin >> vordergrund;switch (hintergrund)
{
case 'g':
{
//Hier Hintergrundparameter Setzen
}
break;
case 'r':
{
//Hier Hintergrundparameter Setzen
}
break;
case 'b':
{
//Hier Hintergrundparameter Setzen
}
break;
}switch (vordergrund)
{
case 'g':
{
//Hier Vordergrundparameter Setzen
}
break;
case 'r':
{
//Hier Vordergrundparameter Setzen
}
break;
case 'b':
{
//Hier Vordergrundparameter Setzen
}
break;
}SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),
"Vordergrundparameter" |"Hintergrundparameter);cout << "Test" << endl;
cin >> test;return 0;
}Wie könnte sowas realisiert werden?
-
Du musst eben eine Variable mit den passenden Werten füttern und diese dann an SetConsoleTextAttribute übergeben. Ich nehme mal an, dass du darauf schon selber gekommen bist. Gehe ich daher recht in der Annahme, dass du nicht weißt, in welchem Format du die Farben angeben musst? Dazu gibt es die Dokumentation zu SetConsoleTextAttribute:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms686047(v=vs.85).aspx
Mit weiterführendem Link zu dem Farbformat, sogar mit Beispiel:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682088(v=vs.85).aspx#_win32_character_attributesKlärt dies deine Frage?
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C++ (auch C++0x und C++11) in das Forum WinAPI verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
http://www.codeproject.com/Articles/9130/Add-Color-to-Console-Projects
oder
http://www.cplusplus.com/articles/2ywTURfi/
-
SeppJ schrieb:
Du musst eben eine Variable mit den passenden Werten füttern und diese dann an SetConsoleTextAttribute übergeben. Ich nehme mal an, dass du darauf schon selber gekommen bist. Gehe ich daher recht in der Annahme, dass du nicht weißt, in welchem Format du die Farben angeben musst? Dazu gibt es die Dokumentation zu SetConsoleTextAttribute:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms686047(v=vs.85).aspx
Mit weiterführendem Link zu dem Farbformat, sogar mit Beispiel:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms682088(v=vs.85).aspx#_win32_character_attributesKlärt dies deine Frage?
Nein nicht ganz.
Ich weiss nicht wie ich die zb. FOREGROUND_GREEN und FOREGROUND_BLUE Parameter in die SetConsoleTextAttribute Funktion füttern kann.
so soll das aussehen:
Benutzer wählt Grün
vordergrundfarbe = 'g';
.
.
.
case 'g':
{
"Platzhalter 1" = FOREGROUND_GREEN
break;
.
.
.SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), "Platzhalter 1"|"Platzhalter 2");
-
Habs nun verstanden
_In_ WORD farbe;
farbe = FOREGROUND_GREEN;
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), farbe);
Danke