Inverse Darstellung der Ausgaben



  • Hi,

    habe in der FAQ schon zu dem Thema farbige Ausgaben gelesen. Nur wollte ich mich vergewissern ob es nicht nen kürzeren und einfacheren Weg gibt einen Text Invers darzustellen (invers: hintergrundfarbe und schriftfarbe vertauscht, also in dos box weiss auf schwarz schreiben)

    also gäbe es eine andere Möglichkeit (lassen wir den befehl system ruhig mal bei seite liegen) ??

    Gruß
    manuel



  • Mir wäre keiner bekannt, sonst würde er ja in der FAQ stehen 😉

    MfG SideWinder



  • Ganz einfach: Selber schreiben. 😉



  • was haltet ihr denn von der folgenden Funktion??

    SetConsoleTextAttribute();

    Ich habe es so verwendet und es funzt erste Sahne

    SAR.h
    
    //  Hintergundfarbe:
    #define INVERS_DARSTELLUNG ( BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_INTENSITY ) 
    
    //  Schriftfarbe
    #define NORMALE_DARSTELLUNG ( FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE )
    
    SAR.cpp
    int Ausgabe(...)
    {
    ...
    printf ("%s", sKopfZeile);
    printf ("%s", sAusgabeZeileTeil1);
    SetConsoleTextAttribute(::GetStdHandle(STD_OUTPUT_HANDLE), INVERS_DARSTELLUNG);
    printf ("%s", SuchDaten.m_sSuchZeichenkette);
    SetConsoleTextAttribute(::GetStdHandle(STD_OUTPUT_HANDLE), NORMALE_DARSTELLUNG);
    printf ("%s\n", sAusgabeZeileTeil2);
    ...
    }
    

    sKopfZeile und sAusgabeZeileTeil1 und SuchDaten.m_sSuchZeichenkette wurden woanders definiert, was aber bei dem beispiel egal sein dürfte um zu zeigen, wie das Dingens funzt.

    Gruß
    Nebu

    Der Quellcode hat keinen Anspruch auf Vollständigkeit 🙂



  • Wenn du die etwas allgemeiner haben willst kannst du doch bestimmt auch Hintergrund/vordergrundfarbe ermitteln und dann andersrum setzen.
    Geht bestimmt 😉



  • es gibt da ein define in wincon.h (daraus kommen die defines #define BACKGROUND_RED etc)

    das sah so aus:

    #define COMMON_LVB_REVERSE_VIDEO   0x4000 // DBCS: Reverse fore/back ground attribute.
    

    er hats aber nciht gemacht. Keine Ahnung warum.

    Da habe ich mir eben selber 2 defines gemacht und damit war das auch erschlagen, brauchte mit aber net selber so sachen wie in der FAQ zu basteln was ja doch deutlich komplexer ist. finde das hier viel einfacher


Anmelden zum Antworten