📄 mdiform1.frm
字号:
VERSION 5.00
Begin VB.MDIForm MDI
BackColor = &H00FF8080&
Caption = "客户通讯录管理系统"
ClientHeight = 10470
ClientLeft = 165
ClientTop = 855
ClientWidth = 15480
Icon = "MDIForm1.frx":0000
LinkTopic = "MDIForm1"
StartUpPosition = 3 '窗口缺省
Begin VB.Menu mnuFile
Caption = "文件&F"
Begin VB.Menu mnuFileExit
Caption = "退出&Q"
End
End
Begin VB.Menu mainshow
Caption = "主界面显示"
Begin VB.Menu showmain
Caption = "显示主界面"
End
Begin VB.Menu hidemain
Caption = "隐藏主界面"
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 = "MDI"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
'LastState变量的作用是标示主窗体原有状态
Public LastState As Integer
'【VB声明】
' 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 Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hWnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
'表示发送的是系统命令
Private Const WM_SYSCOMMAND = &H112
Private Const SC_MOVE = &HF010&
Private Const SC_RESTORE = &HF120&
Private Const SC_SIZE = &HF000&
Private Sub hidemain_Click()
ZJM.Hide
End Sub
'当主窗体加载时
Private Sub MDIForm_Load()
Me.WindowState = 2
'窗体的WindowState属性,返回或设置一个值,该值用来指定在运行时窗体窗口的可视状态
'vbNormal 0 (缺省值)正常 。
'VbMinimized 1 最小化(最小化为一个图标)
'VbMaximized 2 最大化(扩大到最大尺寸)
If WindowState = vbMinimized Then
LastState = vbNormal
Else
LastState = WindowState
End If
'将图标添加到托盘的函数,参见模块中的解释
'注意了这是从主程序到模块的入口,本例中并没有直接调用Shell_NotifyIcon函数
AddToTray Me, mnuTray
SetTrayTip " 客户通讯录" & Chr(13) & "点击右键弹出菜单"
End Sub
'在主窗体Form1大小改变时,相应改变右键菜单mnuTray的菜单项的可用属性Enabled
Private Sub MDIForm_Resize()
Select Case WindowState
'如果窗体最小化了,把菜单项“最大化”“恢复”设为可用,
'而把“最小化”“移动”“大小”三项设为不可用.
'如果这时在托盘图标上点击鼠标右键,会发现不可用项变为灰色
Case vbMinimized
mnuTrayMaximize.Enabled = True
mnuTrayMinimize.Enabled = False
mnuTrayMove.Enabled = False
mnuTrayRestore.Enabled = True
mnuTraySize.Enabled = False
Me.Hide
'窗体最大化时
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 MDIForm_Unload(Cancel As Integer)
RemoveFromTray
End Sub
'“文件”菜单的“退出”项被点击时
Private Sub mnuFileExit_Click()
Unload Me
End Sub
'托盘图标右键菜单上的“退出”项被点击时
Private Sub mnuTrayClose_Click()
click = 1
Unload Me
End Sub
'托盘图标右键菜单上的“最大化”项被点击时
Private Sub mnuTrayMaximize_Click()
WindowState = vbMaximized
Me.Show
mnuTrayMaximize.Enabled = False
mnuTrayMinimize.Enabled = True
mnuTrayMove.Enabled = False
mnuTrayRestore.Enabled = True
mnuTraySize.Enabled = False
End Sub
'托盘图标右键菜单上的“最小化”项被点击时
Private Sub mnuTrayMinimize_Click()
Me.Hide
WindowState = vbMinimized
mnuTrayMaximize.Enabled = True
mnuTrayMinimize.Enabled = False
mnuTrayMove.Enabled = False
mnuTrayRestore.Enabled = True
mnuTraySize.Enabled = False
Me.Hide
End Sub
'托盘图标右键菜单上的“移动”项被点击时
Private Sub mnuTrayMove_Click()
Me.Show
SendMessage hWnd, WM_SYSCOMMAND, _
SC_MOVE, 0&
End Sub
'托盘图标右键菜单上的“恢复”项被点击时
Private Sub mnuTrayRestore_Click()
Me.Show
SendMessage hWnd, WM_SYSCOMMAND, _
SC_RESTORE, 0&
End Sub
'托盘图标右键菜单上的“大小”项被点击时
Private Sub mnuTraySize_Click()
Me.Show
SendMessage hWnd, WM_SYSCOMMAND, _
SC_SIZE, 0&
End Sub
Private Sub MDIForm_queryunload(Cancel As Integer, unloadmode As Integer) '退出子窗体时卸载所有窗体
If click = 1 Then
Dim f As Form
For Each f In Forms
Unload f
Next f
Else
Cancel = True
click = 0
Me.Hide
End If
End Sub
Private Sub showmain_Click()
ZJM.Show
End Sub
Private Sub MDIForm_dblclick()
ZJM.Show
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -