梦幻之旅

DEBUG - 天道酬勤

   :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  671 随笔 :: 6 文章 :: 256 评论 :: 0 Trackbacks
Option Explicit

Public Const MAX_TOOLTIP As Integer = 64
Public Const NIF_ICON = &H2
Public Const NIF_MESSAGE = &H1
Public Const NIF_TIP = &H4
Public Const NIM_ADD = &H0
Public Const NIM_MODIFY = &H1
Public Const NIM_DELETE = &H2
Public Const WM_MOUSEMOVE = &H200
Public Const WM_LBUTTONDOWN = &H201
Public Const WM_LBUTTONUP = &H202
Public Const WM_LBUTTONDBLCLK = &H203
Public Const WM_RBUTTONDOWN = &H204
Public Const WM_RBUTTONUP = &H205
Public Const WM_RBUTTONDBLCLK = &H206

Public Const SW_RESTORE = 9
Public Const SW_HIDE = 0

Public nfIconData As NOTIFYICONDATA


Public Type NOTIFYICONDATA
cbSize 
As Long
hWnd 
As Long
uID 
As Long
uFlags 
As Long
uCallbackMessage 
As Long
hIcon 
As Long
szTip 
As String * MAX_TOOLTIP
End Type

Public Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As LongAs Long
Public Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long


Private Sub Form_Load()
    
If App.PrevInstance Then
         
End ' 退出新运行的程序
    End If
    Me.Caption 
= "我的第一个程序"
    
'以下把程序放入System Tray====================================System Tray Begin
With nfIconData
.hWnd 
= Me.hWnd
.uID 
= Me.Icon
.uFlags 
= NIF_ICON Or NIF_MESSAGE Or NIF_TIP
.uCallbackMessage 
= WM_MOUSEMOVE
.hIcon 
= Me.Icon.Handle
'定义鼠标移动到托盘上时显示的Tip
.szTip = App.Title + "(版本 " & App.Major & "." & App.Minor & "." & App.Revision & ")" & vbNullChar
.cbSize 
= Len(nfIconData)
End With
Call Shell_NotifyIcon(NIM_ADD, nfIconData)
'=============================================================System Tray End
Me.Show
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
Dim lMsg As Single
lMsg 
= X / Screen.TwipsPerPixelX
Select Case lMsg
Case WM_LBUTTONUP
'MsgBox "请用鼠标右键点击图标!", vbInformation, "实时播音专家"
'
单击左键,显示窗体
Timer1.Enabled = False
Call ShowWindow(Me.hWnd, SW_RESTORE)

'下面两句的目的是把窗口显示在窗口最顶层
Me.Show
Me.SetFocus
'' Case WM_RBUTTONUP
'
'   PopupMenu MenuTray '如果是在系统Tray图标上点右键,则弹出菜单MenuTray
'
' Case WM_MOUSEMOVE
'
' Case WM_LBUTTONDOWN
'
' Case WM_LBUTTONDBLCLK
'
' Case WM_RBUTTONDOWN
'
' Case WM_RBUTTONDBLCLK
'
' Case Else
End Select
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    
Call Shell_NotifyIcon(NIM_DELETE, nfIconData)
End Sub

Private Sub Form_Resize()
    
If Me.WindowState = 1 Then
        Me.Hide
    
End If
End Sub

Private Sub leftBtn_Click()
    Static b1 
As Boolean     '定义一个布尔型变量用于开关作用
    b1 = Not b1
    Timer1.Enabled 
= b1     '用Timer1来控制图标的闪烁
    If Not b1 Then
        leftBtn.Caption 
= "开始"
    
Else
        leftBtn.Caption 
= "停止"
    
End If
End Sub

Private Sub rightBtn_Click()
    infoLabel.Caption 
= "右边按钮"
End Sub

Private Sub Timer1_Timer()
  Static b2 
As Boolean   ' 定义一个布尔型变量用于开关作用,当为True时托盘图标为Picture2图片,为False时为Picture1的图片
  b2 = Not b2
  
If b2 Then
        nfIconData.hIcon 
= Image1.Picture     '托盘图标为Picture2的图片
         infoLabel.Caption = "b"
  
Else
        nfIconData.hIcon 
= Image2.Picture       '托盘图标为Picture1的图片
        infoLabel.Caption = "a"
  
End If
   
Call Shell_NotifyIcon(NIM_MODIFY, nfIconData)     '修改托盘图标


End Sub
posted on 2013-08-01 11:21 HUIKK 阅读(208) 评论(0)  编辑  收藏 所属分类: VB/VBA/VBS

只有注册用户登录后才能发表评论。


网站导航: