1.建立一个form
2.设置属性BorderStyle为0,也就是无边框
3.设置属性ShowInTaskbar为True,让其在任务栏可以显示
4.运行程序,这时任务栏可以看到此程序,但是点击它却不能让它最小化。不过设置它为最小化时,点击任务栏可以让它显示为活动窗口。怎样让它支持和正常窗体一样,点击后最小化,再点击下就显示为活动窗口,然后再点击下又最小化?

解决方案 »

  1.   

    BorderStyle设置为2
    去掉标题
    ControlBox设置为False
      

  2.   

    恩 这是另外一种趋标题栏的方法,但是这个必须将caption内容也要清空的吧。这样的话在任务栏就没有文字显示了。
      

  3.   

    你如果在设计时打窗体的边框设为NONE,是会有这样一个问题。
    但你如果设计是不改变窗体样式,而用如下代码就行了:
    Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
    Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Private 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 Long
    Private Enum SetWindowPosConstants
        SWP_ASYNCWINDOWPOS = &H4000
        SWP_DEFERERASE = &H2000
        SWP_FRAMECHANGED = &H20
        SWP_HIDEWINDOW = &H80
        SWP_NOACTIVATE = &H10
        SWP_NOCOPYBITS = &H100
        SWP_NOMOVE = &H2
        SWP_NOOWNERZORDER = &H200
        SWP_NOREDRAW = &H8
        SWP_NOREPOSITION = SWP_NOOWNERZORDER
        SWP_NOSENDCHANGING = &H400
        SWP_NOSIZE = &H1
        SWP_NOZORDER = &H4
        SWP_SHOWWINDOW = &H40
    End Enum
    Private Const WS_SYSMENU = &H80000
    Private Const WS_MINIMIZE = &H20000000
    Private Const WS_MINIMIZEBOX = &H20000
    Private Const WS_MAXIMIZE = &H1000000
    Private Const WS_MAXIMIZEBOX = &H10000
    Private Const WS_CAPTION = &HC00000                  '  WS_BORDER Or WS_DLGFRAME
    Private Const WS_BORDER = &H800000
    Private Const WS_THICKFRAME = &H40000Private Const GWL_STYLE = (-16)Private Sub TitleBarVisible(hwnd As Long, Value As Boolean)
    Dim Style As Long
    Style = GetWindowLong(hwnd, GWL_STYLE)
    If Value Then
        Style = Style Or WS_SYSMENU
        Style = Style Or WS_MAXIMIZEBOX
        Style = Style Or WS_MINIMIZEBOX
        Style = Style Or WS_CAPTION
        Style = Style Or WS_THICKFRAME
    Else
        Style = Style And Not WS_MAXIMIZEBOX
        Style = Style And Not WS_CAPTION
        Style = Style And Not WS_THICKFRAME
    End If
    SetWindowLong hwnd, GWL_STYLE, Style
    SetWindowPos hwnd, 0, 0, 0, 0, 0, SWP_NOMOVE Or SWP_NOSIZE Or SWP_NOREPOSITION Or SWP_NOZORDER Or SWP_FRAMECHANGED
    End SubPrivate Sub Form_Load()
    TitleBarVisible Me.hwnd, False
    End Sub