
楼上的回答简直是胡扯。
我觉得你对于这几个函数的理解已经很正确了。
msdn的解释很清晰很正确,没有任何疑义,和你的理解是一致的。
呵呵,我觉得只要解释一下第一个执行为啥左上角是(0,0),你的所有疑问就没有了。
我想请问一下,你是不是在对话框初始化的时候,也就是OnInitialDlg里面执行的以上代码?我相信答案肯定是“是的”。
在对话框初始化的时候,窗口是先有可能放置在屏幕左上角,然后在这个初始化函数结束后,窗口被移动到屏幕正中。
也就是说,你在对话框初始化过程中获取窗口位置的时候,窗口确实就在左上角!
如果你想验证一下我的结论,不妨在程序中设置一个按钮,在这个按钮的消息响应中,再次执行这几句代码,然后你观察一下结果,是不是就完全符合你的预期了^_^
欢迎采纳!
鼠标时间我就不写了,我不太清楚你要的是什么!
用到的DLL命令
版本 2
DLL命令 取窗口矩形_, 整数型, "user32", "GetWindowRect"
参数 窗口句柄, 整数型
参数 矩形区域, 矩形_
DLL命令 取指定点窗口句柄_, 整数型, "user32dll", "WindowFromPoint"
参数 横坐标, 整数型, , xPoint,x点值
参数 纵坐标, 整数型, , yPoint,y点值
DLL命令 寻找顶级窗口_, 整数型, "user32dll", "FindWindowA", , , FindWindow,寻找窗口列表中第一个符合指定条件的顶级窗口
参数 窗口类名, 文本型, , lpClassName,参见相关帮助
参数 窗口文本, 文本型, , lpWindowName,参见相关帮助
程序集:
版本 2
子程序 获取窗口位置, 矩形_, 公开, 返回窗口的左边,顶边等
参数 句柄, 整数型
局部变量 矩形, 矩形_
取窗口矩形_ (句柄, 矩形)
返回 (jx)
子程序 取指定窗口句柄, 整数型, 公开, 我用的这个方法是通过窗口标题和类名来获取的
参数 窗口标题, 文本型
参数 窗口类名, 文本型
返回 (寻找顶级窗口_ (窗口类名, 窗口标题))
关于鼠标模拟问题你可以看一下 mouse_event函数!
设为满意XX
'在窗体上画一个Timer控件,设置其Interval属性为100
'把代码复制到Form1的代码窗口中
'获得活动窗口句柄的API
Private Declare Function GetForegroundWindow Lib "user32" () As Long
'获得窗口区域结构的API
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, wndRect As RECT) As Long
Private Type RECT '自定义区域结构类型
x As Long
y As Long
Right As Long
Bottom As Long
End Type
Dim ActiveWindowRECT As RECT '用於保存活动窗口区域的结构
Dim ActiveWindowHwnd As Long '活动窗口的句柄
Private Sub Timer1_Timer()
ActiveWindowHwnd = GetForegroundWindow '获得活动窗口的句柄
GetWindowRect ActiveWindowHwnd, ActiveWindowRECT '获得活动窗口的区域并保存在 ActiveWindowRECT 变量中
'在窗口上输出信息
MeCls
Print "活动窗口的坐标是(" & ActiveWindowRECTx & "," & ActiveWindowRECTy & ")"
End Sub
以下语句是窗口不能移动的,把鼠标放到窗口内启动
Hwnd = PluginWindowMousePoint()
sRect = PluginWindowGetClientRect(Hwnd)
dim MyArray
MyArray = Split(sRect, "|")
//下面这句将字符串转换成数值
L = Clng(MyArray(0)): T = Clng(MyArray(1))
R = Clng(MyArray(2)): B = Clng(MyArray(3))
Call PluginBkgndLeftClick(Hwnd, 41-L, 87-T)
其实不用这么复杂,先用抓抓工具的句柄功能获得窗口左上角坐标,然后输入抓抓工具的起始点x坐标和y坐标即可,而且做出来的脚本能随意移动窗口,不用固定位置
以上就是关于各位高手,小弟请教关于GetWindowRect,GetClientRect以及ClientToScreen,ScreenToClient的使用!先谢谢啦全部的内容,包括:各位高手,小弟请教关于GetWindowRect,GetClientRect以及ClientToScreen,ScreenToClient的使用!先谢谢啦、易语言取外部窗口坐标.模拟鼠标点击、VB怎么获取当前活动窗口的坐标等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)