在Windows环境窗口HWND
,如何获得鼠标在该窗口上的坐标?
编辑:抱歉的模糊。 我有一个HWND对象,我正在做一些图像分析。 我希望能够点击HWND对象内显示的图像上的一个点,并打印出我点击的x,y坐标,以及图像在x和y坐标处的一些属性
ScreenToClient
和ClientToScreen
功能在屏幕和客户端坐标系之间进行转换。 鼠标消息以客户端相对坐标传送到窗口。
但是,你的问题并不十分清楚,所以如果我没有提供你正在寻找的答案,请编辑你的问题,以解释你正在寻找什么。
答案的基础已经由David Heffernan给出了。 为了更完整,这是完整的程序:
每个窗口都有一个唯一的HWND
,它是内部数据结构的句柄。 除此之外,该结构还包含一个指向WindowProc
(窗口过程)的函数指针。 此窗口过程负责处理消息,如WM_LBUTTONUP
。 每个窗口消息都有两个相关的参数,历史上称为lparam
和wparam
。 WM_LBUTTONUP
的lparam
参数包含所需的x和y坐标。 您可以通过GET_X_LPARAM(lparam)
和GET_Y_LPARAM(lparam)
Windows支持单个HWND
的多个WindowProc
的链接。 这被称为“子类”