Mouseproblem



  • #include <windows.h>
    #include <iostream.h>
    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();
    
        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:
                    cout << "X: " << ir.Event.MouseEvent.dwMousePosition.X;
                    cout << " Y: " << ir.Event.MouseEvent.dwMousePosition.Y;
                    if(ir.Event.MouseEvent.dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED)
                        cout << " | Linke Taste gedrueckt!";
                    if(ir.Event.MouseEvent.dwButtonState & RIGHTMOST_BUTTON_PRESSED)
                        cout << " | Rechte Taste gedrueckt!";
                break;
            }
        }
        while(running);
        return 0;
    }
    

    Diesen Code habe ich der FAQ dieser Seite entnommen. Das Programm soll ausgeben, welchen Mousebutton man gedrückt hat.
    Der Code lässt sich fehlerfrei compilieren, nur die gewünschte Ausgabe tritt nicht ein. 😞
    Ich habe eine optische USB Intelli Mouse von Microsoft, die ich über einen Adapter an einen PS/2 Anschluss angeschlossen habe. Die Mouse ist auch PS/2 kompatibel und funktioniert einwandfrei. Woran kann es wohl nur liegen?
    Liegt das daran das sie am PS/2 Anschluss betrieben wird und nicht am USB-Port?
    ________________________________________________________________________________

    Ich habe echt keine Ahnung und würde mich sehr freuen, wenn mir jemand helfen könnte.
    Danke!!! 🙂



  • Dieser Thread wurde von Moderator/in flenders aus dem Forum WinAPI 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.



  • Nimm mal die <iostream> statt der veralteten <iostream.h>, eventuell stimmt auch etwas nicht mit der Pufferung der Ausgabe. Sollte es trotz neuer <iostream> nicht klappen häng mal an jede cout-Ausgabe hinten noch das gewohnte "<< endl;" dran.

    MfG SideWinder


Anmelden zum Antworten