C#winform如何获取全局其它窗口中的控件位置和大小

时间:2021-02-11 03:46:16
winform,程序运行后
希望用户在任何其它窗口中点击鼠标时,记录鼠标点击的位置,如果点击的是个textbox,就记录那个textbox的位置和大小
捕获鼠标点击已经用全局钩子实现,控件那个需求完全没思路,求思路

4 个解决方案

#1


继续顶上求解

#2


你说的TextBox的位置,是相对于屏幕的绝对位置。还是相对他的Parent的位置?


既然你Hook到鼠标消息了,那么就可以根据API。GetCursorPos得到鼠标的位置。

然后WindowFromPoint 
http://baike.baidu.com/view/1080360.htm

最后 GetWindowPos.

一共就涉及到3个API。

#3


鼠标点击你已经能捕获了,现在就是获取控件的相对位置了。
你可以在界面中采用坐标设计,取位置就容易了。

#4


就是2楼那样

#1


继续顶上求解

#2


你说的TextBox的位置,是相对于屏幕的绝对位置。还是相对他的Parent的位置?


既然你Hook到鼠标消息了,那么就可以根据API。GetCursorPos得到鼠标的位置。

然后WindowFromPoint 
http://baike.baidu.com/view/1080360.htm

最后 GetWindowPos.

一共就涉及到3个API。

#3


鼠标点击你已经能捕获了,现在就是获取控件的相对位置了。
你可以在界面中采用坐标设计,取位置就容易了。

#4


就是2楼那样