
Private Sub Command1_Click()
Dim zb As POINTAPI
GetWindowRect Text1.Text, ckzb
yxckys = 取坐标颜色(Text1.Text, 0, 0)
zb = 取颜色坐标(0, yxckys, ckzb.Left, ckzb.Top, ckzb.Left + 15, ckzb.Top + 35)
ckbkk = zb.x - ckzb.Left
ckbkg = zb.y - ckzb.Top
MsgBox ckbkk & " " & ckbkg
End Sub
Public Function 取颜色坐标(ByVal Hwnd As Long, ByVal Color As Long, ByVal x1 As Integer, ByVal y1 As Integer, ByVal x2 As Integer, ByVal y2 As Integer) As POINTAPI
Dim a As Integer
Dim b As Integer
Dim HDpic As Long
HDpic = GetDC(Hwnd)
For a = y1 To y2
For b = x1 To x2
If GetPixel(HDpic, b, a) = Color Then
取颜色坐标.x = b
取颜色坐标.y = a
Exit For
End If
Next b
If GetPixel(HDpic, b, a) = Color Then
Exit For
End If
Next a
ReleaseDC Hwnd, HDpic
End Function
代码如上,主要目的通过 窗口内的第一个点的颜色的桌面坐标,减去 窗口在桌面上的坐标来获取 不同主题 的 窗口外框 的大小,
在XP 中完美运行,秒出结果, 而在WIN7中 大概须要 20秒 ,这是什么情况啊,CBM666老师