随身携带异空间小说:用VB制作托盘

来源:百度文库 编辑:九乡新闻网 时间:2024/04/28 11:58:47
 Option Explicit
 Const MAX_TOOLTIP As Integer = 64
 Const NIF_ICON = &H2                          '删除图标
 Const NIF_MESSAGE = &H1
 Const NIF_TIP = &H4
 Const NIM_ADD = &H0                          '添加图标到任务栏提示区
 Const NIM_DELETE = &H2
 Const WM_MOUSEMOVE = &H200
 Const WM_LBUTTONUP = &H202
 Const WM_RBUTTONUP = &H205
 Private 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
'声明Shell_NotifyIcon函数
Private Declare Function Shell_NotifyIcon Lib "shell32.dll" Alias "Shell_NotifyIconA" _
    (ByVal dwMessage As Long, lpData As NOTIFYICONDATA) As Long
Private nfIconData As NOTIFYICONDATA
Private Sub Form_Load()
    nfIconData.hwnd = Me.hwnd
    nfIconData.uID = Me.Icon
    nfIconData.uFlags = NIF_ICON Or NIF_MESSAGE Or NIF_TIP
    nfIconData.uCallbackMessage = WM_MOUSEMOVE
    nfIconData.hIcon = Me.Icon.Handle
    nfIconData.szTip = "System Tray Example" & vbNullChar
    nfIconData.cbSize = Len(nfIconData)
    Call Shell_NotifyIcon(NIM_ADD, nfIconData)
    Me.Visible = False
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
    If lMsg = WM_RBUTTONUP Or lMsg = WM_LBUTTONUP Then Me.PopupMenu sys
End Sub
Private Sub move_Click()
    Call Shell_NotifyIcon(NIM_DELETE, nfIconData)
End Sub
Private Sub show_Click()
    Me.Visible = True
End Sub
Private Sub exit_Click()
    Unload Me
End Sub