winapi 得到鼠标位置、状态,以及相对于窗口的坐标
[編輯] [转简体] (简体译文)
|
作者:huidong
| 分類:【編程】Win32
[
9 瀏覽
0 評論
2 贊
2 踩
]
概要
winapi 得到鼠标具体位置,并实现得到相对于cmd窗口的鼠标位置(鼠标坐标转换:物理坐标和窗口坐标的转换)
正文
// 设置窗口标题,以便查找窗口的句柄 SetConsoleTitle(L"x"); Sleep(100);// 确保窗口标题已经设置成功 HWND wnd = FindWindow(NULL, L"x"); // 保存鼠标位置 POINT point; GetCursorPos(&point); // 获取鼠标指针位置(屏幕坐标) // 将鼠标指针位置转换为窗口坐标 ScreenToClient(wnd/*GetConsoleWindow();// 也可以用这个函数得到cmd的窗口句柄,但是低版本的VS不太支持*/, &point); printf("%d , %d \n",point.x,point.y);
封装后的函数:
// 得到鼠标相对于CMD窗口的位置 POINT GetMousePoint() { POINT point; // 保存鼠标位置 GetCursorPos(&point); // 获取鼠标指针位置(屏幕坐标) ScreenToClient(m_wnd, &point); // 将鼠标指针位置转换为窗口坐标 return point; }
如果要得到鼠标按下的状态,请看GetKeyState和GetAsyncKeyState函数:http://www.huidong.xyz/index.php?mode=2&id=54