如题

解决方案 »

  1.   

    取屏幕当前分辨率,用 API 获取任务栏高度。就可以算一下桌面还剩多大了。
    在窗口最大化时(或 Load 窗体后)把窗体尺寸更改成相应大小。
      

  2.   

    1、只要不是顶级窗口,不会覆盖的,因为任务栏本身是顶级的;
    2、如果你的窗口做成了顶级窗口,就要计算好窗口的高度,不要覆盖任务栏就可以了。获取任务栏高度:http://topic.csdn.net/t/20051116/20/4398296.html
      
      

  3.   


    即使不是顶层窗口,最大化时也会全屏并且覆盖任务栏。楼主请参考这段代码:
    Private Type RECT
      iLeft As Long
      iTop As Long
      iRight As Long
      iBottom As Long
    End Type
    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 LongPrivate Sub Form_Load()    Dim iWinHeight&, hWndShellTray&, stcTrayRECT As RECT
        Me.WindowState = 0
        hWndShellTray = FindWindow("Shell_TrayWnd", "")
        If (hWndShellTray <> 0) Then
            GetWindowRect hWndShellTray, stcTrayRECT
            Me.Move 0, 0, stcTrayRECT.iRight * 15, stcTrayRECT.iTop * 15
        End IfEnd Sub
      

  4.   

    设计时选择 Form 的 BorderStyle 属性为 0。