Farben



  • Ja, das hab ich mir auch schon überlegt -> nur dumm, dass sie rein auf den MSVC ausgelegt ist und Anfänger mit anderen Compilern damit wenig anfangen können - aber vielleicht gibts ja Leute die eine solche Schritt-Für-Schritt-Anleitung für andere Compiler basteln...

    Vordergrund und Hintergrund sind beide mit setcolor() umzustellen -> du musst nur FOREGROUND_XXX für den Vordergrund und BACKGROUND_XXX für den Hintergrund hernehmen. BTW: Es ist besser die Farben zu verwenden, die du in der FAQ unter "Farben" findest, dann musst du nicht soviel mischen sondern es reicht z.b. FG_BLACK für schwarzen Text zu übergeben ;).

    Den ganzen Hintergrund kannst du mit colcout.clrscr(FARBE) umstellen, allerdings ist der Bildschirm dann auch gelöscht. Den Bildschirm nicht zu löschen und trotzdem den ganzen Hintergrund zu ändern kann die Improved Console von Marcus leider nicht, und ich bastle erst an den Verbesserungen.

    Hier eine Funktion für das Ändern des kompletten Hintergrunds ohne die Zeichen zu ändern oder zu löschen:

    const bool setbackgroundcolor ( const DWORD dwColor )
    {
        CONSOLE_SCREEN_BUFFER_INFO csbi;
        const COORD c1 = { 0 , 0 };
        DWORD dw1 ( 0 );
        HANDLE hOutput ( GetStdHandle ( STD_OUTPUT_HANDLE ) );
    
        GetConsoleScreenBufferInfo ( hOutput , &csbi );
    
        DWORD dwLength = csbi.dwSize.X + 1 * csbi.dwSize.Y + 1;
    
        return (
            FillConsoleOutputAttribute ( hOutput , dwColor , dwLength , c1 , &dw1 ) && true
                );
    }
    

    Sollte sie nicht funktionieren, Fehler und/oder falsche Auswirkungen angeben!

    MfG SideWinder



  • Wenn ich die Funktion benutze kommte eine Fehlermeldung:

    --------------------Konfiguration: bunt - Win32 Debug--------------------
    Kompilierung läuft...
    bunt.cpp
    E:\Martin\bunt.cpp(11) : error C2601: 'setbackgroundcolor' : Lokale Funktionsdefinitionen sind unzulaessig
    Fehler beim Ausführen von cl.exe.

    bunt.exe - 1 Fehler, 0 Warnung(en)

    Na ja.
    Aber wenn man beim Text einfach immer die tab-Taste drückt, wird es ja auch in der Farbe. Das ist zwar kompliziert, aber es erfüllt den Zweck.

    Auf jeden Fall wurde mein Problem gelöst!
    Vielen Dank noch einmal!

    Mfg Martin



  • Zeig mal deinen Code her. Du hast nur die Funktion an den falschen Ort geschrieben. Ich zeig dir wo sie hingehört ;).

    MfG SideWinder



  • Die Schritt-Für-Schritt-Anleitung befindet sich jetzt im Thread "Improved Console" ebenfalls in der FAQ!

    MfG SideWinder



  • Hmm, da wurde ich mal wieder auf dem falschen Fuß erwischt.
    Bin gerade erst dabei Funktionen zu lernen. Ich weiß zwar, dass die Anweisungen ausführen und einen Wert zurückgeben, aber nicht wie man 2 Funktionen in einem Text hat und verbindet.
    Deshalb hab ich die Funktion oben einfach genommen wie sie ist und nur die Header Dateien zugefügt.
    Ich lese gleich nochmal ein bisl was, vielleicht kriege ich das dann noch raus;-)

    Mfg martin

    PS: Find ich ganz praktisch mit der FAQ



  • Sobald du dich im Thema Funktionen etwas sicherer bewegst, wirst du auch verstehen wo genau die Funktion setbackgroundcolor() hingehört ;).

    Viel Spaß beim Lernen!

    MfG SideWinder



  • Hi
    Danke Für die Hilfe ich habe mal alles probiert funktioniert auch soweit ganz gut nur der Background ist nur über die Hälfte des Konsolenfensters was nun??



  • Nur die Hälfte? Inwiefern:

    |****|      |**  |      |*** |
    |****| oder |**  | oder |*** |
    |    |      |**  |      |*** |
    |    |      |**  |      |    |
    

    Wäre mir sehr behilflich.

    MfG SideWinder



  • Hab zwar noch nicht alles gerafft mit den Funktionen, aber zumindest, dass ich sie nicht in die main () schreibe , aber in ihr aufrufen muss.
    Zumindest klappt es jetzt ohne Fehler.DANKE!
    Nochmal schnell ne allgemeine Frage, wenn es nicht stört. Muss ich alles was die Funktion machen soll in die Funktion schreiben und dann nur noch in der main aufrufen, oder kann ich in der main noch was zu der Funktion zu schreiben?
    Na ja, ich werde mich mal wieder in meinen Büchern vertiefen, hab noch was zu lernen...

    MFG martin



  • Nein, du kannst nichts mehr hinzuschreiben. Du musst den Code in die Funktion schreiben und in main brauchst du sie nur noch aufzurufen. Damit verhinderst du in erster Linie doppelten Code und kannst in zweiter Linie eine Funktion ändern ohne, dass du sie überall dort wo du sie aufgerufen hast ändern musst!

    #include <iostream>
    using namespace std;
    
    void funktion ();
    
    int main ()
    {
        cout << "Hier etwas Text:" << endl;
        funktion ();
        funktion ();
        return ( 0 );
    }
    
    void funktion ()
    {
        cout << "Hello World" << endl;
    }
    

    MfG SideWinder



  • @SideWinder
    beispiel 1 also ich sage mal die ersten 3 Zeilen sind farbig der rest bleibt schwarz.
    Beim Compilieren 0 Fehler 0 Warnungen



  • Ich glaub, ich weis was ich falsch gemacht habe...bastel wieder ein wenig und melde mich dann.

    MfG SideWinder



  • Hy

    Habe von meinem Prof eine Internetadresse erhalten, die ich Dir auch empfehlen möchte. Dort kannst Du Dir ein "Programm heruntrladen" in dem Du auch unter Visual C++ gotoxy, textbackgroun, textcolor usw. anwenden kannst.

    www.c-plus-plus-archiv.de Dort findest Du unter C++Listings einen Lösungsansatz unter dem Namen "conioex".

    Vielleicht hilft Dir das auf einfache Weise weiter

    Daggel



  • Ist aber auch nicht viel anders als mein Code und der der in der Improved Console enthalten ist...

    MfG SideWinder


Anmelden zum Antworten