将鼠标位置从hwnd映射到HWND_DESKTOP

时间:2017-03-16 14:58:45

标签: windows winapi point

您好我如何将鼠标位置从局部区域窗口映射到屏幕窗口?

in code :
//Get x & y mouse coord...
Point.x = GET_X_LPARAM(lParam);
Point.y = GET_Y_LPARAM(lParam);  
//Translate to Screen 
MapWindowPoints(hWnd, HWND_DESKTOP, &Point, 1);
//not work!
SetCursorPos(Point.x, Point.y);

好的尝试下一步..

 POINT Point;
 Point.x = GET_X_LPARAM(lParam);
 Point.y = GET_Y_LPARAM(lParam);  
 ClientToScreen(hWnd, &Point); 
 SetCursorPos(Point.x, Point.y); // not work!

enter image description here

1 个答案:

答案 0 :(得分:1)

只是说些什么"不行!"没用x和y是否符合您的期望?

将LPARAM客户端坐标转换为屏幕坐标并调用SetCursorPos不会移动鼠标,因为鼠标指针已经存在!

如果您的应用程序不支持DPI并且您在高DPI系统上运行,那么您的应用程序的坐标可能不是真正的坐标,但在您的情况下,我猜测您只是没有设置x和y到#34;正确"值。