⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 form1.frm

📁 vb精彩编程希望大家有用
💻 FRM
字号:
VERSION 5.00
Begin VB.Form Form1 
   Caption         =   "Form1"
   ClientHeight    =   2745
   ClientLeft      =   1635
   ClientTop       =   1830
   ClientWidth     =   3420
   Icon            =   "Form1.frx":0000
   LinkTopic       =   "Form1"
   ScaleHeight     =   2745
   ScaleWidth      =   3420
   ShowInTaskbar   =   0   'False
   Begin VB.Menu mnuFile 
      Caption         =   "文件(&F)"
      Begin VB.Menu mnuFileExit 
         Caption         =   "退出(&Q)"
      End
   End
   Begin VB.Menu mnuTray 
      Caption         =   "Popup"
      Visible         =   0   'False
      Begin VB.Menu mnuTrayRestore 
         Caption         =   "恢复(&R)"
      End
      Begin VB.Menu mnuTrayMove 
         Caption         =   "移动(&M)"
      End
      Begin VB.Menu mnuTraySize 
         Caption         =   "大小(&S)"
      End
      Begin VB.Menu mnuTrayMinimize 
         Caption         =   "最小化(&n)"
      End
      Begin VB.Menu mnuTrayMaximize 
         Caption         =   "最大化(&x)"
      End
      Begin VB.Menu mnuTraySep 
         Caption         =   "-"
      End
      Begin VB.Menu mnuTrayClose 
         Caption         =   "退出(&Q)"
      End
   End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

'LastState变量的作用是标示主窗体原有状态
Public LastState As Integer

Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal HWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, _
    lParam As Any) As Long
'  调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。
'  SendMessageBynum,SendMessageByString是该函数的“类型安全”声明形式
'【返回值】
'  Long,由具体的消息决定
'【参数表】
'  hwnd -----------  Long,要接收消息的那个窗口的句柄
'  wMsg -----------  Long,消息的标识符
'  wParam ---------  Long,具体取决于消息
'  lParam ---------  Any,具体取决于消息

'表示发送的是系统命令
Private Const WM_SYSCOMMAND = &H112
Private Const SC_MOVE = &HF010&
Private Const SC_RESTORE = &HF120&
Private Const SC_SIZE = &HF000&

'当主窗体加载时
Private Sub Form_Load()
    '窗体的WindowState属性,返回或设置一个值,该值用来指定在运行时窗体窗口的可视状态
    'vbNormal    0   (缺省值)正常 。
    'VbMinimized 1   最小化(最小化为一个图标)
    'VbMaximized 2   最大化(扩大到最大尺寸)
    If WindowState = vbMinimized Then
        LastState = vbNormal
    Else
        LastState = WindowState
    End If
    '将图标添加到托盘的函数,参见模块中的解释
    '注意了这是从主程序到模块的入口,本例中并没有直接调用Shell_NotifyIcon函数
    AddToTray Me, mnuTray
    SetTrayTip "托盘图标演示,点击右键弹出菜单"
End Sub

'在主窗体Form1大小改变时,相应改变右键菜单mnuTray的菜单项的可用属性Enabled
Private Sub Form_Resize()
    Select Case WindowState
        '如果窗体最小化了,把菜单项“最大化”“恢复”设为可用,
        '而把“最小化”“移动”“大小”三项设为不可用.
        '如果这时在托盘图标上点击鼠标右键,会发现不可用项变为灰色
        Case vbMinimized
            mnuTrayMaximize.Enabled = True
            mnuTrayMinimize.Enabled = False
            mnuTrayMove.Enabled = False
            mnuTrayRestore.Enabled = True
            mnuTraySize.Enabled = False
        '窗体最大化时
        Case vbMaximized
            mnuTrayMaximize.Enabled = False
            mnuTrayMinimize.Enabled = True
            mnuTrayMove.Enabled = False
            mnuTrayRestore.Enabled = True
            mnuTraySize.Enabled = False
        '一般状态下
        Case vbNormal
            mnuTrayMaximize.Enabled = True
            mnuTrayMinimize.Enabled = True
            mnuTrayMove.Enabled = True
            mnuTrayRestore.Enabled = False
            mnuTraySize.Enabled = True
    End Select
    If WindowState <> vbMinimized Then LastState = WindowState
End Sub

'保证在程序退出时删除托盘图标
Private Sub Form_Unload(Cancel As Integer)
    RemoveFromTray
End Sub

'“文件”菜单的“退出”项被点击时
Private Sub mnuFileExit_Click()
    Unload Me
End Sub

'托盘图标右键菜单上的“退出”项被点击时
Private Sub mnuTrayClose_Click()
    Unload Me
End Sub

'托盘图标右键菜单上的“最大化”项被点击时
Private Sub mnuTrayMaximize_Click()
    WindowState = vbMaximized
End Sub

'托盘图标右键菜单上的“最小化”项被点击时
Private Sub mnuTrayMinimize_Click()
    WindowState = vbMinimized
End Sub

'托盘图标右键菜单上的“移动”项被点击时
Private Sub mnuTrayMove_Click()
    SendMessage HWnd, WM_SYSCOMMAND, SC_MOVE, 0&
End Sub

'托盘图标右键菜单上的“恢复”项被点击时
Private Sub mnuTrayRestore_Click()
    SendMessage HWnd, WM_SYSCOMMAND, SC_RESTORE, 0&
End Sub

'托盘图标右键菜单上的“退出”项被点击时
Private Sub mnuTraySize_Click()
    SendMessage HWnd, WM_SYSCOMMAND, SC_SIZE, 0&
End Sub

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -