GetConsoleScreenBufferInfo Problem
-
Hallo wieso wird mir hier immer nur ein und dieselbe Maus Koordinate ausgeben ?
( Ja ich bewege die Maus auch im Consolen Fenster )
CONSOLE_SCREEN_BUFFER_INFO inf; HWND hwnd = FindWindow("ConsoleWindowClass",NULL); while(1) { system("CLS"); Sleep(1); GetConsoleScreenBufferInfo ( hwnd , &inf ); cout<<inf.dwCursorPosition.Y<<endl; cout<<inf.dwCursorPosition.X<<endl; }
-
was du da ermittlest sind nicht die Mauskoordinaten. Die bekommt man mit GetCursorPos(); du ermittelst die position des konsolencursors.
Beispiel um die Position deines Mauszeigers zu ermitteln:
POINT p; GetCursorPos(&p); int x=p.x; int y=p.y;was du mit deinem code ermittelst ist die Position, wohin die nächste ausgabe geschrieben wird, ähnlich wie in einem textdokument.
lg,
andi01.
-
Ich will aber nur die Koordinaten aus dem Konsolen Fenster haben wie kann ich die kriegen ?
-
mit ScreenToClient():
Codebeispiel:
POINT p; GetCursorPos(&p); ScreenToClient(hwnd_fenster, &p); int x=p.x; int y=p.y;alternativ könntest du dir auch einfach die abmessungen des fensters besorgen und umrechnen:
HWND hwnd;//hwnd deines fensters RECT r; GetClientRect(hwnd, &r); POINT p; GetCursorPos(&p); int x=p.x-r.left; int y=p.y-r.top;lg,
andi01.