获取桌面大小


【实例说明】
    在开发程序时,用户非常希望程序能根据当前计算机桌面大小自动调整程序窗体大小。如何获得当前桌面的大小呢?本例将讲解如何获得桌面大小。运行程序,单击“判断桌面大小”按钮,窗体将显示桌面的分辨率。

【编程思路】
    用API函数中的SystemParametersInfo函数来获取和设置Windows系统参数,从而获得桌面大小。SystemParametersInfo函数功能:允许获取和设置数量众多的Windows系统参数。
    函数声明:
    Private Declare Function SystemParametersInfo Lib "user32" _
            Alias "SystemParametersInfoA" _
            (ByVal uAction As Long, _
            ByVal uParam As Long, _
            ByRef lpvParam As Any, _
            ByVal fuWinIni As Long) As Long

    参数:
    uAction参数:指定要设置的参数。
    uParam参数:可参考uAction常数表。
    lpvParam参数:按引用调用的interget、long和数据结构。
    fuWinIni参数:取决于不同的参数及操作系统,随同函数设置的用户配置保存在win.ini或注册表。
    返回值:类型为Long,非零表示成功,零表示失败。

【设计步骤】
    1.新建一个标准工程,创建一个新窗体,默认名为Form1。
    2.在窗体上放置两个CommandButton控件和一个Label控件。

    3.源程序  [素材源程序下载]


'API常量
Const SPI_GETWORKAREA = 48

'API类型
Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
End Type

'API函数SystemParametersInfo
Private Declare Function SystemParametersInfo Lib "user32" _
        Alias "SystemParametersInfoA" _
        (ByVal uAction As Long, _
        ByVal uParam As Long, _
        ByRef lpvParam As Any, _
        ByVal fuWinIni As Long) As Long

'获取桌面大小
Private Sub Command1_Click()
        Dim lRet As Long
        Dim apiRect As RECT
        lRet = SystemParametersInfo(SPI_GETWORKAREA, vbNull, apiRect, 0)
        If lRet Then
                '显示桌面大小
                Label1.Caption = "宽:" & apiRect.Right - apiRect.Left & _
                        Space(8) & "高:" & apiRect.Bottom - apiRect.Top
        Else
                Label1.Caption = "调用SystemParametersInfo函数失败!"
        End If
End Sub

'退出
Private Sub Command2_Click()
        Unload Me
End Sub