Mouse_event 函数 的相对坐标 在电脑设置了提高指针精确度或者调了指针移动速度时 用这个函数移动的位置是偏的。我怎么计算才能保证绝对的正确呢
要保证绝对正确的坐标,可以使用Windows API函数GetCursorPos获取鼠标当前的绝对坐标,然后将其转换为相对坐标。具体步骤如下:
- 使用GetCursorPos函数获取当前鼠标的绝对坐标:
POINT point;
GetCursorPos(&point);
- 获取窗口的客户区域坐标,即相对坐标:
RECT rect;
GetClientRect(hwnd, &rect);
- 将获取到的鼠标绝对坐标转换为相对坐标:
ScreenToClient(hwnd, &point);
- 将鼠标移动到相对坐标,可以使用鼠标事件函数:
mouse_event(MOUSEEVENTF_MOVE, point.x, point.y, 0, 0);
其中hwnd为窗口句柄,MOUSEEVENTF_MOVE表示鼠标移动事件。
使用这种方法可以保证鼠标移动的绝对正确性。
原文地址: https://www.cveoy.top/t/topic/bQ3y 著作权归作者所有。请勿转载和采集!