Graphisches Auswahlmenü!



  • Hi,
    ich schreibe ein kleines Konsolenprogramm in C++. Alle Funktionen werden über ein Menü angewählt. Nun möchte ich nicht wie immer über Zahleneingabe den Menüpunkt wählen, sondern mit den Pfeiltasten einen Auswahlbalken steuern können. Ich habe es einfach so gemacht dass ich mit getch auf die Eingaben warte udn wenn der ASCII-Code für Pfeil hoch oder PFeil runter kommt wird das Menü neu gezeichnet (system("cls")) und eine Zeile höher oder tiefer wird nun der Hinetrgrund andersfarbig gemalt. Doch die Methode is ziemlich langsam und das Bild flackert bei jedem Wechsel. Gibt es eine bessere Methode? Vllt eine Grafikbibliothek fürs DOS? Wenn ja welche?



  • Du könntest mit der Funktion gotoxy() an eine bestimmte Position des Bildschirms springen und dort anfangen zu schreiben. (vergiss nicht, an der Position des vorherigen Menüpunktes den Pfeil mit Leerzeichen zu übermalen)

    (Anmerkung: gotoxy() gehört nicht zum Standard - da hängt es von deinem System ab, wie diese Funktion heißt)

    PS: Hier oben angepinnt ist ein Thread zur Improved Console - vielleicht ist der einen Blick wert.



  • Also ich entwickel in Visual Studio .NET 2003

    Der Lehrer meinte, dass man für gotoxy() ne Bibliothek einbinden müsste...

    Kennt da jemand eine?



  • Baweg schrieb:

    Also ich entwickel in Visual Studio .NET 2003

    Der Lehrer meinte, dass man für gotoxy() ne Bibliothek einbinden müsste...

    Kennt da jemand eine?

    In diesem Thread stellt SideWinder seine Improved Console vor... die basiert auf der WinAPI. Lade dir die zwei Dateien runter und leg sie in deinem Projekt ab. Dann kannst du auch dein Problem lösen.

    MfG

    GPC



  • Ja ich glaube die Lib wäre perfekt, aber ich kriegs einfach nicht ans laufen. Hab die cpp und die hpp ins Projekt eingebunden aber es kommt die Meldung:
    "ic.cpp(323): fatal error C1010: Unerwartetes Dateiende während der Suche nach der Direktive für die vorkompilierte Headerdatei"



  • "Vorkompilierte Header" werden vom Compiler einmal ausgewertet und dann fertig ins Programm eingebunden - dadurch wird das Compilieren etwas schneller (weil der Compiler den Inhalt als gegeben voraussetzen kann). Allerdings brauchst du dann in jedem Quelltext den entsprechenden Header (normalerweise stdafx.h).

    Zwei Lösungen:
    a) Du gehst in die Compiler-Optionen und stellst die vorcompilierten Header ab.
    b) du fügst ein "#include "stdafx.h"" an den Anfang deiner Datei (diese Datei muß existieren, kann aber auch leer sein).



  • Vielen Dank läuft jetzt.... ist perfekt für das was ich amchen will...


Anmelden zum Antworten