[英]How do you get the coordinates (with respect to a window) of a mouse click, in a Windows environment
使用Windows环境窗口HWND
,如何获得在该窗口上单击鼠标的坐标?
编辑:抱歉,含糊其辞。 我有一个HWND对象,并且正在对其进行一些图像分析。 我希望能够单击HWND对象中显示的图像上的一个点,并打印出单击的x,y坐标,以及在x和y坐标处的图像的某些属性
ScreenToClient
和ClientToScreen
函数在屏幕坐标系和客户端坐标系之间转换。 鼠标消息以客户端相对坐标的形式传递到Windows。
但是,您的问题并不十分清楚,因此,如果我没有提供所需的答案,请编辑您的问题以确切说明您的要求。
David Heffernan已经给出了答案的基础。 为了更完整,这是完整的过程:
每个窗口都有一个唯一的HWND
,它是内部数据结构的句柄。 该结构除其他外还包含指向WindowProc
(窗口过程)的函数指针。 此窗口过程负责处理诸如WM_LBUTTONUP
消息。 每个窗口消息都有两个关联的参数,历史上称为lparam
和wparam
。 WM_LBUTTONUP
的lparam
参数包含所需的x和y坐标。 您可以通过GET_X_LPARAM(lparam)
和GET_Y_LPARAM(lparam)
检索它们
Windows支持单个HWND
链接多个WindowProc
。 这称为“子类化”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.