欢迎大家访问我的网站!

VB最小化托盘2

思博2022-04-07 20:38:37505编程开发

2022-03

198e80785122c874c715990a6c641c21

a4f06ecc42945c5e46142504d1df75c4

7.7或7.8左右


2022-04

9f107dce758cfc81491a91e95d42e297

5c6996a06a7b9ef6b839b3958713cda1

3ffd3c2b80f45a3a82dcdb36ec567562


模块代码

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_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 Long) As Long

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



窗体代码


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 = vbMinimized Then

      ''MsgBox "最小化"

          '以下把程序放入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.Hide

    

    ElseIf Me.WindowState = vbMaximized Then

      ''  MsgBox "最大化"

    ElseIf Me.WindowState = vbNormal Then

       '' MsgBox "正常状态"

    End If

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, "实时播音专家"

       '单击左键,显示窗体

       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


转载声明:本站发布文章及版权归原作者所有,转载本站文章请注明文章来源!

本文链接:http://lxkj.vip/?id=72

网友评论