如何让程序最小化时进入状态栏图标(就是状态栏右边的小图标)

解决方案 »

  1.   

    在VB的安装盘上有个例子,直接编译就可以得到控件:
    在VB6CDROOM:\COMMON\TOOLS\VB\UNSUPPRT\SYSTRAY
      

  2.   

    把該例子編譯成OCX,把這個OCX文件COPY到系統的System32下,然後註冊。開始,運行,輸入regsvr32,然後把那個文件托進來,運行就可以了。
      

  3.   

    有个现成的API可以用用,Picture3.DragIcon 的ICON属性设置为你想显示在系统托盘内的图标样子。Declare Function Shell_NotifyIconA Lib "SHELL32" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As LongType NOTIFYICONDATA
         cbSize As Long
         hwnd As Long
         uID As Long
         uFlags As Long
         uCallbackMessage As Long
         hIcon As Long
         szTip As String * 64
    End Type' commands & flags for NotifyIcons
    Global Const NIM_ADD = &H0&
    Global Const NIM_MODIFY = &H1
    Global Const NIM_DELETE = &H2
    Global Const NIF_MESSAGE = &H1
    Global Const NIF_ICON = &H2
    Global Const NIF_TIP = &H4
    Global Const WM_MOUSEMOVE = &H200
    Global ni As NOTIFYICONDATA
    Public result
    Private Sub Form_Load()
    ToolTip = "AIPTEST is runing ..."
    Dim result
        ni.cbSize = Len(ni) 'length of this structure
        ni.hwnd = Picture3.hwnd 'control to receive messages
        ni.uID = 0 ' uniqueID
        ni.uFlags = NIF_MESSAGE Or NIF_ICON Or NIF_TIP ' Operation Flags
        ni.uCallbackMessage = WM_MOUSEMOVE ' message to send to control
        ni.hIcon = Picture3.DragIcon ' handle to Icon
        ni.szTip = ToolTip + Chr$(0) ' Tool Tip
        
        ' 必须给提示图标分配一个唯一的ID号
        ' so increment until creation is successful
        
        Do
            ni.uID = ni.uID + 1
            result = Shell_NotifyIconA(NIM_ADD, ni)
        Loop While result = 0end subPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        Cancel = True
        Me.Hide    
    End SubPrivate Sub Form_Resize()
        If Me.WindowState = 1 Then Me.Hide
    End SubPrivate Sub Exit_Click()
        result = Shell_NotifyIconA(NIM_DELETE, ni)
        Unload Me
        End
    End Sub