📄 filopen.bas
字号:
Attribute VB_Name = "Module2"
'*** 带有同文件一起工作的过程的标准模块 ***
'*** SDI 记事本示例应用程序的部件 ***
'**********************************************************
Option Explicit
Sub FileOpenProc()
Dim intRetVal
Dim intResponse As Integer
Dim strOpenFileName As String
' 如果文件已经更改,保存它
If FState.Dirty = True Then
intResponse = FileSave
If intResponse = False Then Exit Sub
End If
On Error Resume Next
frmSDI.CMDialog1.Filename = ""
frmSDI.CMDialog1.ShowOpen
'frmSDI.CMDialog1.Filter = "工程(*.zdm)|*.zdm|数据文件(*.dat)|*.dat|所有文件(*.*)|*.*"
If Err <> 32755 Then ' User chose Cancel.
strOpenFileName = frmSDI.CMDialog1.Filename
' 如果文件大于65K, 则它不能被打开,所以取消此操作。
If FileLen(strOpenFileName) > 65000 Then
MsgBox "文件太大不能被打开。"
Exit Sub
End If
OpenFile (strOpenFileName)
UpdateFileMenu (strOpenFileName)
End If
End Sub
Function GetFileName(Filename As Variant)
' 显示一个“另存为”对话框并且返回文件名。
' 如果用户选择取消,返回一个空的字符串。
On Error Resume Next
frmSDI.CMDialog1.Filename = Filename
frmSDI.CMDialog1.ShowSave
'frmSDI.CMDialog1.Filter = "工程(*.zdm)|*.zdm|数据文件(*.dat)|*.dat|所有文件(*.*)|*.*"
If Err <> 32755 Then ' 用户选择取消。
GetFileName = frmSDI.CMDialog1.Filename
Else
GetFileName = ""
End If
End Function
Function OnRecentFilesList(Filename) As Integer
Dim i ' 计数器变量
For i = 1 To 4
If frmSDI.mnuRecentFile(i).Caption = Filename Then
OnRecentFilesList = True
Exit Function
End If
Next i
OnRecentFilesList = False
End Function
Sub OpenFile(Filename)
Dim fIndex As Integer
Close #1
On Error Resume Next
' 打开选定的文件。
Open Filename For Input As #1
If Err Then
MsgBox "不能打开文件: " + Filename
Exit Sub
End If
' 更改鼠标指针为沙漏。
Screen.MousePointer = 11
' 更改窗体的标题并且显示新的文本。
frmSDI.Caption = "SDI 记事本 - " & UCase(Filename)
frmSDI.txtNote.Text = StrConv(InputB(LOF(1), 1), vbUnicode)
FState.Dirty = False
Close #1
' 重新设置鼠标指针
Screen.MousePointer = 0
End Sub
Sub SaveFileAs(Filename)
On Error Resume Next
Dim strContents As String
Close #1
' 打开文件。
Open Filename For Output As #1
' 把记事本的内容放入一个变量。
strContents = frmSDI.txtNote.Text
' 显示沙漏状的鼠标指针。
Screen.MousePointer = 11
' 写变量内容到一个已保存的文件。
Print #1, strContents
Close #1
' 重新设置鼠标指针
Screen.MousePointer = 0
' 设置窗体的标题。
If Err Then
MsgBox Error, 48, App.Title
Else
frmSDI.Caption = "SDI 记事本 - " & Filename
' 重新设置用过的标志。
FState.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 + -