2 vaintwyt vaintwyt 于 2013.11.12 11:22 提问

在鼠标钩子中,如何实时获得鼠标的屏幕坐标?

在鼠标钩子的WM_LBUTTONDOWN消息中,我想获得鼠标点击瞬间的坐标。注意,是鼠标点击瞬间。

我现在知道有两种方法
1、GET_X_LPARAM(lparam)和GET_Y_LPARAM(lparam).
这种方法获取的是相对于钩子的鼠标坐标,但是钩子不像窗体,没有自己的坐标吧。我获取到的坐标要么很大,要么是负数。。。然后我尝试用钩子句柄来转换,ClientToScreen((HWND)hMouseHook, &pt)。得到的pt值也不是鼠标的屏幕坐标啊。

2、GetCursorPos
我现在用的临时方法就是这个。不过这里有一个问题。这个不是鼠标点击瞬间的坐标,而是我执行GetCursorPos时候,鼠标的坐标。由于我代码中,点击完会移动鼠标到指定的位置。所以获取的坐标时而准确,时而不准确。

请大牛赐教啊!!!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!