📄 7-2f.bas
字号:
Attribute VB_Name = "Module2"
'*** 标准模块,其中包含处理文件的过程。 ***
'*** MDI 记事本应用程序示例的一部分 ***
'**********************************************
Option Explicit
Sub FileOpenProc()
Dim intRetVal
On Error Resume Next
Dim strOpenFileName As String
frmMDI.CMDialog1.Filename = ""
frmMDI.CMDialog1.ShowOpen
If Err <> 32755 Then ' 用户选择“取消”。
strOpenFileName = frmMDI.CMDialog1.Filename
' 如果文件大于 65K,则不能打开文件,取消操作。
If FileLen(strOpenFileName) > 65000 Then
MsgBox "文件太大,无法打开。"
Exit Sub
End If
OpenFile (strOpenFileName)
UpdateFileMenu (strOpenFileName)
' 如果工具栏仍不可见,就显示工具栏。
If gToolsHidden Then
frmMDI.imgCutButton.Visible = True
frmMDI.imgCopyButton.Visible = True
frmMDI.imgPasteButton.Visible = True
gToolsHidden = False
End If
End If
End Sub
Function GetFileName(Filename As Variant)
' 显示“另存为”对话框并返回文件名
' 如果选择“取消”,则返回空字符串。
On Error Resume Next
frmMDI.CMDialog1.Filename = Filename
frmMDI.CMDialog1.ShowSave
If Err <> 32755 Then ' 用户选择“取消”。
GetFileName = frmMDI.CMDialog1.Filename
Else
GetFileName = ""
End If
End Function
Function OnRecentFilesList(Filename) As Integer
Dim i ' 计数器变量。
For i = 1 To 4
If frmMDI.mnuRecentFile(i).Caption = Filename Then
OnRecentFilesList = True
Exit Function
End If
Next i
OnRecentFilesList = False
End Function
Sub OpenFile(Filename)
Dim fIndex As Integer
On Error Resume Next
' 打开选定文件。
Open Filename For Input As #1
If Err Then
MsgBox "不能打开文件: " + Filename
Exit Sub
End If
' 改变鼠标指针显示类型为沙漏。
Screen.MousePointer = 11
' 改变窗体标题并显示新文本。
fIndex = FindFreeIndex()
Document(fIndex).Tag = fIndex
Document(fIndex).Caption = UCase(Filename)
Document(fIndex).Text1.Text = StrConv(InputB(LOF(1), 1), vbUnicode)
FState(fIndex).Dirty = False
Document(fIndex).Show
Close #1
' 重新设置鼠标指针。
Screen.MousePointer = 0
End Sub
Sub SaveFileAs(Filename)
On Error Resume Next
Dim strContents As String
' 打开文件。
Open Filename For Output As #1
' 将记事本中的内容赋值给一变量。
strContents = frmMDI.ActiveForm.Text1.Text
' 显示沙漏鼠标指针。
Screen.MousePointer = 11
' 将变量内容写到一个保存的文件中。
Print #1, strContents
Close #1
' 重新设置鼠标指针。
Screen.MousePointer = 0
' 设置窗体标题。
If Err Then
MsgBox Error, 48, App.Title
Else
frmMDI.ActiveForm.Caption = UCase(Filename)
' 重新设置 dirty 标志。
FState(frmMDI.ActiveForm.Tag).Dirty = False
End If
End Sub
Sub UpdateFileMenu(Filename)
Dim intRetVal As Integer
' 判断打开的文件名是否已经在“文件”菜单控件数组中。
intRetVal = OnRecentFilesList(Filename)
If Not intRetVal Then
' 将打开的文件写到注册表。
WriteRecentFiles (Filename)
End If
' 更新“文件”菜单控件数组中最近打开的文件列表。
GetRecentFiles
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -