注意 不是系统托盘图标BorderStyle=0 的form 当点击任务栏上的图标 不能最小化。

解决方案 »

  1.   

    换一种思路,用setwindowrgn去调窗体的标题栏,就不存在这个问题了
      

  2.   

    用 GetWindowLong 函数和SetWindowLong:添加一个模块,把窗体的BorderStyle属性设置1,然后复制一下代码,就可以实现你所要求的效果了Public Declare Function GetWindowLong Lib "user32" Alias _
      "GetWindowLongA" (ByVal hwnd As Long, _
      ByVal nIndex As Long) As Long
    Public Declare Function SetWindowLong Lib "user32" Alias _
      "SetWindowLongA" (ByVal hwnd As Long, _
      ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Public Declare Function SetWindowPos Lib "user32" _
      (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
      ByVal x As Long, ByVal y As Long, ByVal cx As Long, _
    ByVal cy As Long, ByVal wFlags As Long) As LongPrivate Const GWL_STYLE = (-16)
    Private Const WS_CAPTION = &HC00000
    Private Const SWP_FRAMECHANGED = &H20
    Private Const SWP_NOMOVE = &H2
    Private Const SWP_NOZORDER = &H4
    Private Const SWP_NOSIZE = &H1Public Sub ToggleTitleBar(f As Form, ShowTitle As Boolean)
        Dim style As Long
        style = GetWindowLong(f.hwnd, GWL_STYLE)
        If ShowTitle Then
            style = style Or WS_CAPTION
        Else
            style = style And Not WS_CAPTION
        End If
        SetWindowLong f.hwnd, GWL_STYLE, style
        SetWindowPos f.hwnd, 0, 0, 0, 0, 0, SWP_FRAMECHANGED Or SWP_NOMOVE Or SWP_NOZORDER Or SWP_NOSIZE
    End Sub'在窗体form1的load事件中
    Private Sub Form_Load()
        ToggleTitleBar Me, False
    End Sub
      

  3.   

    忘了一点,把窗体的BorderStyle属性设置1后,需要把窗体的MaxButton和MinButton属性设置为True,否则最大和最小化菜单就没了
      

  4.   

    或者用 rainstormmaster(暴风雨 v2.0) 大哥的方法:Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
    Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As LongPrivate Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    Const SM_CYCAPTION = 4 Private Sub Form_Load()
        Dim rgn As Long, capHeight As Long
        capHeight = GetSystemMetrics(SM_CYCAPTION) + 3
        Me.ScaleMode = 3
        rgn = CreateRectRgn(3, capHeight, Me.ScaleWidth, Me.ScaleHeight + capHeight)
        SetWindowRgn Me.hWnd, rgn, True
    End Sub
      

  5.   

    http://www.china-askpro.com/msg14/qa48.shtml
      

  6.   

    //如果捕捉“点击任务栏图标事件" 如果就题而论的话,你可以尝试在子类中处理一条MS没有说明的消息(对应常量为&H313)