程序运行以后,在系统任务栏建立图标,并且from1.hide
Private Sub Form_Load()   Form1.Hide
   
  '在系统区加入图标
   nid.cbSize = Len(nid)
   nid.hWnd = Form1.hWnd
   nid.uId = vbNull
   nid.uFlags = NIF_ICON Or NIF_TIP Or NIF_MESSAGE
   nid.uCallBackMessage = WM_MOUSEMOVE ' Or WM_RBOTTONDOWN
   nid.hIcon = Form1.Icon
   Shell_NotifyIcon NIM_ADD, nid
end sub然后,点击图标,程序最大化
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
    On Error Resume Next
      Form1.WindowState = 2
    Form1.Show
   
    Dim msg As Long
    msg = x / Screen.TwipsPerPixelX
   
    Select Case msg                     '处理系统区图标的鼠标点击事件
      
       Case WM_LBUTTONDOWN      '左键单击显示左键快捷菜单
             Form1.Show
       Case WM_RBUTTONDBLCLK    '双击右建
             miStopServer_Click
    End Select
    
End Sub然后再点击最先化的图表
Private Sub Form_Resize()         '调整窗口
    If WindowState = 1 Then
       'If Form1.WindowState <> 1 Then
       
     Form1.Hide
      '  End If
         
    End If
end sub可是这个时候再来点击任务栏上的图标的时候,根本没办法出发这个过程哦Private Sub Form_MouseMove请问怎么解决啊?

解决方案 »

  1.   

    改你的别字:
    然后,点击图标,程序最大化  -- 应是程序窗口最大化
    然后再点击最先化的图表  --- 最先化的图表???找个例子给你吧。
    http://www.Planet-Source-Code.com/vb/scripts/ShowCode.asp?txtCodeId=45685&lngWId=1
    里面有你所要的一切。看看人家怎样实现Icon in System Tray.顺便学学人家的编程风格。To all:编程即做人,不能随便,要严谨。
      

  2.   


    谢谢楼上的指教!
    问题是我用同样的方法在另外一个程序都是很好的,就是这个程序就不行了,没办法再次触发这个事件哦:Form_MouseMove