Bestimmte Zeile einfärben



  • Hallo,

    ich programmiere zurzeit ein Verwaltungsprogramm in dem man zwischen speichern, bearbeiten,suchen usw. auswählen kann. Nun möchte ich das ich beim Auswählen der Kategorie mit den Pfeiltasten rauf und runter springen kann und die gereade gemeinte Zeile soll markiert bzw. in einer anderen Farbe dargestellt werden.

    Ich habe das ganze schon mit einem Pfeil der auf und ab springt was mir aber nicht so gut gefällt.

    Das Problem ist wenn ich die Funktion:

    void color(int farbe)
    {
    SetConsoleTextAttribute(::GetStdHandle(STD_OUTPUT_HANDLE), farbe);
    }

    benutze wird immer der Ganze Text also alle Auswahlmöglichkeiten markiert und ich finde keine Lösung einzelne zu markieren.

    Kann mir da vielleicht jemand helfen?

    MFG



  • improved console wär glaube das bessere forum hierfür... vll auch noch winapi - kA...



  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Hi Bruder,
    die hier ist dein Freund:
    FillConsoleOutputAttribute 🙂



  • oder die hier WriteConsoleOutputAttribute 🙂



  • wie sähe denn dann die funktion aus?
    bin noch recht neu in dem kram^^... :p



  • ?^^



  • Check This Out:

    int main()
    {
    		WORD attribute[5];
    	HANDLE hOut;
    	COORD coord={0};
    	int n;
    	attribute[0] = FOREGROUND_RED |BACKGROUND_GREEN;
    	attribute[1] = FOREGROUND_BLUE|BACKGROUND_RED;
    	attribute[2] = FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE ;
    	attribute[3] = BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE ;
    	attribute[4] = FOREGROUND_RED | BACKGROUND_BLUE;
    	//FOREGROUND_RED | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE;
    	hOut = GetStdHandle(STD_OUTPUT_HANDLE);
    	printf("Hello ");
    	WriteConsoleOutputAttribute(
    	hOut,  // handle to a console screen buffer
       attribute,  // pointer to buffer to write attributes from
    	5,          // number of character cells to write to
    	coord,      // coordinates of first cell to write to
    	&n                        // pointer to number of cells written to
    	);
    	printf("World !");
    
    	coord.X = 6; 
    
    	FillConsoleOutputAttribute(
    		hOut,  // handle to screen buffer
      FOREGROUND_RED | BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE,        // color attribute to write
      7,          // number of character cells to write to
      coord,     // x- and y-coordinates of first cell
      &n// pointer to number of cells written to
    return 0;
    }
    


  • danke^^
    ich versuchs mal damit


Anmelden zum Antworten