Problem bie SetConsoleTextAttribute



  • Hallo Community!

    Folgendes Problem :
    Ich versuche eine Klasse zu bauen, die eine Member Funktion enthält, welche die Farbe des Textes in Console ändert.Mein Problem ist nun aber, das die Funktion SetConsoleTextAttribute() scheinbar die Hintergrund Farbe nicht erkennen will,denn die Vordergrundfarbe setzen funktioniert.

    Hier mal der Code(verkürzt auf den Problem herd):
    class.h

    enum eColor {
         COLOR_BLACK,
         COLOR_DARKBLUE,
         COLOR_DARKGREEN,
         COLOR_DARKTURK,
         COLOR_DARKRED,
         ...
    };
    
    class Farbe{
    private :
         eColor coreBGColor,coreFGColor;
         HANDLE consoleDevice;
    public :
         Farbe();
         void setColor(eColor coreFGColor, eColor coreBGColor);
    };
    

    class.cpp

    Farbe::Farbe()
    {
         consoleDevice = GetStdHandle(STD_OUTPUT_HANDLE);
    }
    void Farbe::setColor(eColor coreFGColor, eColor coreBGColor)
    {
         int _FGcoreCOLOR,_BGcoreCOLOR;
         switch (coreFGColor) {
         case COLOR_BLACK:
              _FGcoreCOLOR = 0x0;
              break;
         case COLOR_DARKBLUE:
              _FGcoreCOLOR = 0x1;
              break;
         case COLOR_DARKGREEN:
              _FGcoreCOLOR = 0x2;
              break;
         case COLOR_DARKTURK:
              _FGcoreCOLOR = 0x3;
              break;
         ...
         }
         switch (coreFGColor) {
         case COLOR_BLACK:
              _BGcoreCOLOR = 0x0;
              break;
         case COLOR_DARKBLUE:
              _BGcoreCOLOR = 0x1;
              break;
         case COLOR_DARKGREEN:
              _BGcoreCOLOR = 0x2;
              break;
         case COLOR_DARKTURK:
              _BGcoreCOLOR = 0x3;
              break;
         case COLOR_DARKRED:
              _BGcoreCOLOR = 0x4;
              break;
         case COLOR_LILA:
              _BGcoreCOLOR = 0x5;
              break;
           ...
         }
    
         SetConsoleTextAttribute(consoleDevice,_FGcoreCOLOR | _BGcoreCOLOR*0x10 );
    }
    


  • Im zweiten Switch solltest du dann auch coreBGColor prüfen.



  • Ok, entschuldigt bitte, hatte nur einen Variablennamen falsch 🤡



  • Ja genau das war es , trotzdem danke.


Log in to reply