很简单,原因有二。第一,VB里long是32位,但是VBNET里是64位,Dim ksWND As Integer才对。第二,VB在API里默认传址,而VBNET默认传值,所以API里要添加Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,添加"ByRef" lpRect As RECT) As Integer
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,byref lpRect As RECT) As Integer
Private Structure RECT
Dim Left As Integer
Dim Top As Integer
Dim Right As Integer
Dim Bottom As Integer
End Structure
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1Click
Dim ksWND As integer
Dim ksTitle As String
Dim winS As RECT
If TextBox1Text <> "" Then
ksTitle = TextBox1Text
ksWND = FindWindow(vbNullString, ksTitle)
GetWindowRect(ksWND, winS)
MsgBox("左上角坐标(" & winSLeft & "," & winSTop & ")" & vbCrLf & "右下角坐标(" & winSRight & "," & winSBottom & ")" & vbCrLf & "窗口高" & winSBottom - winSTop & "窗口宽" & winSRight - winSLeft)
Else
MsgBox("请填写窗口名称")
End If
End Sub
RECT 是M$ windows API中定义的一个结构体类型用来描述 矩形范围 上下左右的 坐标
typedef struct _RECT {
LONG left;
LONG top;
LONG right;
LONG bottom;
} RECT, PRECT;
你可以去查msdn或者直接打开头文件windefh看
windows提供给你一个叫做GetWindowRect的函数(这里是mfc CWnd类的成员函数,其实就是同名API函数包装下)
你去调用这个函数 这个函数就可以返回一个RECT类型的数据但是你需要自定定义一个RECT类型的变量
并且把这个变量的地址传给这个函数,这个函数会把返回值写入到这个传入地址对应的内存变量中
LZ C语言估计没学好,不然不会看不明白这是典型的 指针和结构体的综合运行
这个加5神马你得先宝明白神马是窗口的客户区,客户区坐标怎样的
举例:一个窗口中有一个按钮
这个按钮相对窗口 客户区左上角坐标是 水平100,垂直50 ,按钮大小 宽80,搞35,
那么你写代码得到这个按钮的“RECT” 就是 left 100 ,top 50 ,right 180 ,bottom 85
( 窗口关系问题,tab的子窗口item 的坐标相对父窗口tab的左上角,父子窗口关系,
还有一种是相对屏幕左上角的坐标关系)
希望LZ 能明白
窗口每OnSize一次,获取一次它的大小,与程序启动时的大小做比较,算出其比例,调用自定义函数,在自定义函数中获取每个控件的大小GetDlgItem(IDC_XXX)->GetWindowRect(&rc);
然后把每个控件进行按比例缩放,使用MoveWindow函数
各函数具体用法请查msdn
以上就是关于VB.NET想用GetWindowRECT获取某窗口的坐标,但测试结果是L,T,R,B显示都是0,0,0,0全部的内容,包括:VB.NET想用GetWindowRECT获取某窗口的坐标,但测试结果是L,T,R,B显示都是0,0,0,0、MFC中,结构体RECT的成员变量到底是什么意思GetWindowRect和GetItemRect又是什么、怎样在VC或VS中使用自己设计的窗体(即这个窗体不是直接拖控件创建的,比如自己绘制的)等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)