如何用api函数获取窗口或者窗口客户区的长方形尺寸?

首先,api函数获得的窗口的尺寸都是以像素为单位的 。

获得窗口的客户区的尺寸可以用GetClientRect,获取窗口的尺寸可以用GetWindowRect

获得的长方形区域的左上角和右下角的坐标都是存储在RECT结构中的。

接下来以excel应用程序窗口为例,演示下这两个函数的用法。

'获取窗体客户区相对于客户区左上角的位置,以像素表示
Public Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
'获取窗口相对于屏幕左上角的位置,以像素表示
Public Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
'定义一个矩形的坐标结构
Public Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type
Sub QQ1722187970()
    Dim rClient As RECT
    Dim rWindow As RECT
    Dim iHwnd As Long
    iHwnd = Excel.Application.hwnd
    GetClientRect iHwnd, rClient
    GetWindowRect iHwnd, rWindow
    Debug.Print rClient.Left, rClient.Top, rClient.Bottom, rClient.Right
    Debug.Print rWindow.Left, rWindow.Top, rWindow.Bottom, rWindow.Right
End Sub

 

 

       

发表评论