GetCursorPos показывает неверные координаты при масштабировании более 100% в системе винды
#include <windows.h>
#include <iostream>
using namespace std;
int main() {
POINT MousePoint;
while (GetCursorPos(&MousePoint))
{
system("cls");
cout << MousePoint.x << "," << MousePoint.y;
Sleep(100);
}
}
Ответы (1 шт):
Автор решения: web developer
→ Ссылка
#include <windows.h>
#include <iostream>
using namespace std;
typedef BOOL(WINAPI* GetPhysicalCursorPos_t)(LPPOINT);
int main() {
POINT MousePoint;
HMODULE user32 = GetModuleHandle(L"user32.dll");
GetPhysicalCursorPos_t GetPhysicalCursorPos = (GetPhysicalCursorPos_t)GetProcAddress(user32, "GetPhysicalCursorPos");
while (true) {
system("cls");
if (GetPhysicalCursorPos) {
GetPhysicalCursorPos(&MousePoint);
} else {
GetCursorPos(&MousePoint);
}
cout << MousePoint.x << "," << MousePoint.y;
Sleep(100);
}
return 0;
}