如何获得任务栏高度,得知任务栏隐藏?谢谢!

解决方案 »

  1.   

    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, lpRect As RECT) As Long
    Private Type RECT
            Left As Long
            Top As Long
            Right As Long
            Bottom As Long
    End TypePrivate Sub Command1_Click()
        Dim hTaskBar As Long
        hTaskBar = FindWindow("Shell_TrayWnd", vbNullString)
        Debug.Print hTaskBar
        Dim RC As RECT
        Dim i As Long
        i = GetWindowRect(hTaskBar, RC)
        Debug.Print RC.Right - RC.Left '任务栏宽度
        Debug.Print RC.Bottom - RC.Top '任务栏高度
    End Sub
      

  2.   

    Const ABM_GETTASKBARPOS = &H5
    Private Type RECT
            Left As Long
            Top As Long
            Right As Long
            Bottom As Long
    End Type
    Private Type APPBARDATA
        cbSize As Long
        hWnd As Long
        uCallbackMessage As Long
        uEdge As Long
        rc As RECT
        lParam As Long
    End Type
    Private Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long
    Private Sub Command1_Click()
        Dim data As APPBARDATA
        data.cbSize = Len(data)
        Call SHAppBarMessage(ABM_GETTASKBARPOS, data)
        ' data.rc.Left 等於工作列的左边界
        ' data.rc.Top 等於工作列的上边界
        ' data.rc.Right 等於工作列的右边界
        ' data.rc.Bottom 等於工作列的下边界
        Debug.Print data.rc.Right - data.rc.Left
        Debug.Print data.rc.Bottom - data.rc.Top
    End Sub
      

  3.   

    判断上面几位所说的data.rc.Top值,即可得知是否隐藏
      

  4.   

    返回的数值的单位是什么,怎么转换成Twip???
      

  5.   

    //返回的数值的单位是什么
    单位为像素
    //怎么转换成Twip
    不是有
    Screen.TwipsPerPixelX
    Screen.TwipsPerPixelY
    吗?
      

  6.   

    这代码有没有问题,我为啥不能给分,单击给分就提示没有注册类别,问是否调试,选了否,就没有反应了
    <script language=javascript>
    // 感谢csdn网友 梅花雨 提供这段代码
    /*@cc_on @*/
    /*@if (@_win32 && @_jscript_version>5)
    function window.confirm(str)
    {
        execScript("n = msgbox('"+ str +"', 257)", "vbscript");
        return(n == 1);
    }
    @end @*/
    </script>