当然有办法了
你可以用一用
CoolBar及pictrue的合同。
我做这一个,感觉不错

解决方案 »

  1.   

    用TabStrip控件(Style=1)就可实现任务栏按键
    但你想实现像任务栏一样的功能的,需要枚举窗体枚举窗体的方法可参考:
    http://www.dapha.net/vb/list.asp?id=643
    码名称 显示工作条上的运行窗口  
    代码类型 系统控制 
    运行环境 VB5.0/Win9x 
    授权方式 免费代码 
    代码大小 4K 
    代码评价  
    上传时间 2001-11-29 
    相关链接 主页 
    本日下载 1  本周:39  总计:65 
    下载地址1 下载 
    代码简介 显示工作条上的运行窗口,程序还获得每个运行窗口的图标,另外可以把选中的窗口放到最上.
      

  2.   

    ::::::::::模块里::::  —————————————modAppBar.bas——————————————
    Option ExplicitType POINTAPI
            x As Long
            y As Long
    End TypeType RECT
        Left        As Long
        Top         As Long
        Right       As Long
        Bottom      As Long
    End TypeType APPBARDATA
            cbSize As Long
            hwnd As Long
            uCallbackMessage As Long
            uEdge As Long
            rc As RECT
            lParam As Long '  message specific
    End Type
    Declare Function SHAppBarMessage Lib "shell32.dll" (ByVal dwMessage As Long, pData As APPBARDATA) As Long
    Declare Function SetRect Lib "user32" (lpRect As RECT, ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
    Declare Function GetSystemMetrics Lib "user32" (ByVal nIndex As Long) As Long
    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
    Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As LongPublic Const WM_MOUSEMOVE = &H200
    Public Const WM_ACTIVATE = &H6
    Public Const WM_WINDOWPOSCHANGED = &H47Public Const ABE_BOTTOM = 3
    Public Const ABE_LEFT = 0
    Public Const ABE_RIGHT = 2
    Public Const ABE_TOP = 1
    Public Const ABM_ACTIVATE = &H6
    Public Const ABM_GETAUTOHIDEBAR = &H7
    Public Const ABM_GETSTATE = &H4
    Public Const ABM_GETTASKBARPOS = &H5
    Public Const ABM_NEW = &H0
    Public Const ABM_QUERYPOS = &H2
    Public Const ABM_REMOVE = &H1
    Public Const ABM_SETAUTOHIDEBAR = &H8
    Public Const ABM_SETPOS = &H3
    Public Const ABM_WINDOWPOSCHANGED = &H9
    Public Const ABN_FULLSCREENAPP = &H2
    Public Const ABN_POSCHANGED = &H1
    Public Const ABN_STATECHANGE = &H0
    Public Const ABN_WINDOWARRANGE = &H3Public Const SM_CXSCREEN = 0
    Public Const SM_CYSCREEN = 1Public Const HWND_TOP = 0
    Public Const HWND_TOPMOST = -1Public Const SWP_NOACTIVATE = &H10
    Public Const SWP_SHOWWINDOW = &H40
    ____________________________________________________________________--
    需要:::::::::: Picture1   timer1:::::::::::::::::_______________________________AppBar.frm_________________________________________
    Option ExplicitDim BarData As APPBARDATADim bAutoHide As Boolean
    Dim bAnimate As Boolean
    Private Sub Form_Load()
    Picture1.AutoSize = True
    Picture1.BorderStyle = 0
        Dim lResult As Long    Move 0, 0, 0, 0
        Screen.MousePointer = vbDefault
        
        bAutoHide = True
        bAnimate = True
        
        BarData.cbSize = Len(BarData)
        BarData.hwnd = hwnd
        BarData.uCallbackMessage = WM_MOUSEMOVE
        lResult = SHAppBarMessage(ABM_NEW, BarData)
        lResult = SetRect(BarData.rc, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN))
        BarData.uEdge = ABE_TOP
        lResult = SHAppBarMessage(ABM_QUERYPOS, BarData)
        If bAutoHide Then
            BarData.rc.Bottom = BarData.rc.Top + 2 'tbrToolBar.Bands("ToolBar").Height + 6
            lResult = SHAppBarMessage(ABM_SETPOS, BarData)
            BarData.lParam = True
            lResult = SHAppBarMessage(ABM_SETAUTOHIDEBAR, BarData)
            If lResult = 0 Then
                bAutoHide = False
            Else
                lResult = SetWindowPos(BarData.hwnd, HWND_TOP, BarData.rc.Left, BarData.rc.Top - 42, BarData.rc.Right - BarData.rc.Left, 44, SWP_NOACTIVATE)
            End If
        End If
        If Not bAutoHide Then
            BarData.rc.Bottom = BarData.rc.Top + 42
            lResult = SHAppBarMessage(ABM_SETPOS, BarData)
            lResult = SetWindowPos(BarData.hwnd, HWND_TOP, BarData.rc.Left, BarData.rc.Top, BarData.rc.Right - BarData.rc.Left, 42, SWP_NOACTIVATE)
        End If
    End Sub
    Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)    Static bRecieved As Boolean
        Dim lResult As Long
        Dim newRC As RECT
        Dim lMessage As Long
        
        lMessage = x / Screen.TwipsPerPixelX
        
        If bRecieved = False Then
            bRecieved = True
            Select Case lMessage
                Case WM_ACTIVATE
                    lResult = SHAppBarMessage(ABM_ACTIVATE, BarData)
                Case WM_WINDOWPOSCHANGED
                    lResult = SHAppBarMessage(ABM_WINDOWPOSCHANGED, BarData)
                Case ABN_STATECHANGE
                    lResult = SetRect(BarData.rc, 0, 0, GetSystemMetrics(SM_CXSCREEN), GetSystemMetrics(SM_CYSCREEN))
                    BarData.uEdge = ABE_TOP
                    lResult = SHAppBarMessage(ABM_QUERYPOS, BarData)
                    If bAutoHide Then
                        BarData.rc.Bottom = BarData.rc.Top + 2
                        lResult = SHAppBarMessage(ABM_SETPOS, BarData)
                        BarData.lParam = True
                        lResult = SHAppBarMessage(ABM_SETAUTOHIDEBAR, BarData)
                        If lResult = 0 Then
                            bAutoHide = False
                        Else
                            lResult = SetWindowPos(BarData.hwnd, HWND_TOP, BarData.rc.Left, BarData.rc.Top - 42, BarData.rc.Right - BarData.rc.Left, 44, SWP_NOACTIVATE)
                        End If
                    End If
                    If Not bAutoHide Then
                        BarData.rc.Bottom = BarData.rc.Top + 42
                        lResult = SHAppBarMessage(ABM_SETPOS, BarData)
                        lResult = SetWindowPos(BarData.hwnd, HWND_TOP, BarData.rc.Left, BarData.rc.Top, BarData.rc.Right - BarData.rc.Left, 42, SWP_NOACTIVATE)
                    End If
                Case ABN_FULLSCREENAPP
                    Beep
            End Select
            bRecieved = False
        End If
    End SubPrivate Sub Form_Resize()
        Picture1.Move 0, 0, Width, Height
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        If BarData.hwnd <> 0 Then SHAppBarMessage ABM_REMOVE, BarData
    End Sub
    Private Sub Picture1_DblClick()
        Unload Me
    End SubPrivate Sub Picture1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
        Dim lResult As Long
        Dim iCounter As Integer
        If Top < 0 Then
            If bAnimate Then
                For iCounter = -36 To -1
                    BarData.rc.Top = iCounter
                    lResult = SetWindowPos(BarData.hwnd, 0&, BarData.rc.Left, BarData.rc.Top, BarData.rc.Right - BarData.rc.Left, 42, SWP_NOACTIVATE)
                Next
            End If
            BarData.rc.Top = 0
            lResult = SetWindowPos(BarData.hwnd, HWND_TOPMOST, BarData.rc.Left, BarData.rc.Top, BarData.rc.Right - BarData.rc.Left, 42, SWP_SHOWWINDOW)
            tmrHide.Enabled = True
        End If
    End Sub
    Private Sub tmrHide_Timer()
        Dim lResult As Long
        Dim lpPoint As POINTAPI
        Dim iCounter As Integer
        lResult = GetCursorPos(lpPoint)
        If lpPoint.x < Left \ Screen.TwipsPerPixelX Or lpPoint.x > (Left + Width) \ Screen.TwipsPerPixelX Or lpPoint.y < Top \ Screen.TwipsPerPixelY Or lpPoint.y - 10 > (Top + Height) \ Screen.TwipsPerPixelY Then
            If bAnimate Then
                For iCounter = -1 To -37 Step -1
                    BarData.rc.Top = iCounter
                    lResult = SetWindowPos(BarData.hwnd, 0&, BarData.rc.Left, BarData.rc.Top, BarData.rc.Right - BarData.rc.Left, 42, SWP_NOACTIVATE)
                Next
            End If
            BarData.rc.Top = -42
            lResult = SetWindowPos(BarData.hwnd, HWND_TOPMOST, BarData.rc.Left, BarData.rc.Top, BarData.rc.Right - BarData.rc.Left, 44, SWP_NOACTIVATE)
            tmrHide.Enabled = False
        End If
    End Sub
      

  3.   

    timer1 的名字叫 tmrHideInterval=1