繁体   English   中英

在Windows环境中,如何获取鼠标单击的坐标(相对于窗口)

[英]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坐标处的图像的某些属性

ScreenToClientClientToScreen函数在屏幕坐标系和客户端坐标系之间转换。 鼠标消息以客户端相对坐标的形式传递到Windows。

但是,您的问题并不十分清楚,因此,如果我没有提供所需的答案,请编辑您的问题以确切说明您的要求。

David Heffernan已经给出了答案的基础。 为了更完整,这是完整的过程:

每个窗口都有一个唯一的HWND ,它是内部数据结构的句柄。 该结构除其他外还包含指向WindowProc (窗口过程)的函数指针。 此窗口过程负责处理诸如WM_LBUTTONUP消息。 每个窗口消息都有两个关联的参数,历史上称为lparamwparam WM_LBUTTONUPlparam参数包含所需的x和y坐标。 您可以通过GET_X_LPARAM(lparam)GET_Y_LPARAM(lparam)检索它们

Windows支持单个HWND链接多个WindowProc 这称为“子类化”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM