[Win32] Maus
-
Die Maussteuerung in der Konsole funktioniert über WinAPI-Aufrufe.
Hier einige sinnvolle Funktionen und am Ende ein kleines Programm das zeigt wie man mit der Maus in der Konsole sinnvoll arbeiten kann - die Konsole darf sich dabei nicht im "QuickEdit"-Mouds befinden!
#include <windows.h> // 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; }
Viel genauere Informationen zu den WinAPI-Aufrufen findet ihr in der MSDN.
MfG SideWinder
PS: Wenn ihr Fehler findet, meldet euch bitte umgehend.