Permalänk
Medlem

Orange färg i C++?

Tjena!

Skulle behöva lite hjälp med att få reda på hur man får texten att bli orange i C++.
Jag vet hur man får fram färger, men det tycks inte finnas någon orange?

Koden är ju följande för att få färg på texten...:

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

using namespace std;
void setcolor(unsigned short color)
{
HANDLE hcon = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hcon,color);
}

...och sedan: setcolor(10) (för grön färg t ex.)

Färger 1-18 eller något sånt ändrar ju bara färgen på texten och efter det ändras färgen på bakgrunden. Orange borde ju rimligtvis finnas där någonstans, vilket nummer har den? Eller måste man göra på något annat sätt för att fixa det?

Visa signatur

AMD Ryzen 5 3600 3.6GHz || Asus ROG Strix B450-F Gaming || Asus GeForce GTX 1660 Super || Corsair Vengeance LPX Black 16GB 3200MHz || Corsair RM650X V2 650W || Kingston A2000 1TB NVMe M.2 || Fractal Design Define C

Permalänk
Medlem

SetConsoleTextAttribute(hcon, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY );

med eller utan intensiteten verkar vara det närmaste du kan komma med SetConsoleTextAttribute.

Permalänk
Medlem

Det du borde göra är att använda och blanda de konstanter som finns listade på http://msdn2.microsoft.com/en-us/library/ms682088.aspx för att få rätt färg, istället för att använda lösa siffervärden.

Edit: Först var jag visst inte.

Visa signatur

Vill du ha svar? Citera mig gärna.

Permalänk

Verkar inte vara speciellt många alternativ

Du får implementera en egen prompt

Hade mitt prompt-projekt som jag pysslar med emellanåt varit någorlunda brukbart hade du kunnat använda det.

Permalänk
Hedersmedlem

Bara för att reda ut lite eventuella missförstånd, detta har ingenting med C++ att göra. Det handlar helt enkelt om terminalen (kommandotolken som Windows kallar den) och fungerar olika i olika terminaler/operativsystem.

EDIT: Ja, jag vet att "terminal" egentligen syftar på något annat och att "terminalemulator" vore mer korrekt att använda.

Visa signatur

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av zoomster

SetConsoleTextAttribute(hcon, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY );

med eller utan intensiteten verkar vara det närmaste du kan komma med SetConsoleTextAttribute.

Jag är amatör innom detta område bara så att ni vet
Men jag lägger alltså bara in SetConsoleTextAttribute(hcon, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY ) längst upp och skriver sedan FOREGROUND_INTENSITY ovanför det jag vill ändra färgen på, eller?

Visa signatur

AMD Ryzen 5 3600 3.6GHz || Asus ROG Strix B450-F Gaming || Asus GeForce GTX 1660 Super || Corsair Vengeance LPX Black 16GB 3200MHz || Corsair RM650X V2 650W || Kingston A2000 1TB NVMe M.2 || Fractal Design Define C