Maus in Console



  • hi,

    ich programmiere mit Visual Studio

    wie kann ich in der Console Maustasten auswerten z.b

    hab ich einen Menüpunkt

    cout<<"1. Tue was"<<endl;

    switch(wahl)
    {
    case '1':
    {
    tue_was();
    }
    }

    wie würde das Code teschnnisch aussehen , wenn ich mit der maus über den Menüpunkt fahre das der sich verfärbt und wenn ich drauf klicke ich in das Menü rein komme...

    danke für eure hilfe !!!! xD





  • cool danke ^^

    also das zweite mit den x und y koordinaten funktioniert, nur der erste Links das Prog funzt nich weil er die "console.h" nich findet....
    was hat es mit der aufsich ?



  • ich hab das mal mit den x und y koordinaten probiert (also das auß dem zweiten link)..das funktioniert auch alles wunderbar

    nur nachdem ich bestimmten koordianten abfrage, die bedung stimmt und ich den Bildschrim lösche und ein anderes Menü aufrufe ist das abfragen nicht mehr verfügbar, kann mir jemand sagen was ich falch mache.....oder muss ich vielleicht irgendein befehl ausführen ?!?!?!?

    danke !!! ^^



  • Dieser Thread wurde von Moderator/in estartu aus dem Forum MFC (Visual 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.





  • danke dir schonmal xD

    nur in dem Code ist das Problem auch nicht gelöst

    hier ist mal der Quelltect aus dem Link und ich hab mal kommis rein gemacht um erkenntlicher zu machen was ich meine

    #include <windows.h>
    #include <iostream>
    using namespace std;
    // Initialisiert die Maus und gibt die Anzahl der Maustasten zurück
    DWORD mouseInit ()
    {
    DWORD mode;
    GetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),&mode);
    SetConsoleMode(GetStdHandle(STD_INPUT_HANDLE),mode|ENABLE_MOUSE_INPUT);

    DWORD buttons;
    GetNumberOfConsoleMouseButtons(&buttons);

    return buttons;
    }

    // Zeigt oder versteckt den Mauscursor
    void showCursor (bool show = true)
    {
    ShowCursor(show);
    }

    int main ()
    {
    mouseInit();
    showCursor();
    cout<<"Hallo"<<endl;\\Gibt Hallo aus --> Buchstabe H hat pos Y=0 und X=0
    bool running = true;
    do
    {
    DWORD count;
    INPUT_RECORD ir;
    ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE),&ir,1,&count);

    switch(ir.EventType)
    {
    case KEY_EVENT:
    {
    //running = false; // Beenden bei Tastendruck
    break;
    }

    case MOUSE_EVENT:
    {
    if(ir.Event.MouseEvent.dwMousePosition.X == 0 && ir.Event.MouseEvent.dwMousePosition.Y == 0 && ir.Event.MouseEvent.dwButtonState == 1) \\wenn die Position Y=0 und X=0 angeklickt wird, öffnet sich der case
    {
    system("cls");\\dort wird bildschrim gelöscht
    cout<<"test"<<endl; \\hier wird test ausgegeben, nur kann ich jetzt die maus nicht mehr abfragen , der cursor verschwindet-> was muss ich hier tun damit ich z.b das "t" auswerten kann wenn es gedrückt wird ?????
    }
    break;
    }
    }
    }
    while(running);
    return 0;
    }



  • ich habe herausgefunden, das wenn ich einen Tastendruck auswerte und ein system("cls") ausführe, dass abfragen der Maus nicht mehr funktioniert

    was kann ich dagegen tun, weil ich will ja trotzdem den Bildschirm löschen ???



  • ich hab es herausgefunden...

    sobal man einen System cls ausführt ist der mousecursor nicht mehr aktiv

    um ihn nach einem system cls wieder verwenden zu können einfach nach dem cls folgenden code wiederholen :

    GetConsoleMode(hStdIn, &dwMode);
    SetConsoleMode(hStdIn, dwMode|ENABLE_MOUSE_INPUT);


Anmelden zum Antworten