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