📄 frmbook.frm
字号:
VERSION 5.00
Begin VB.Form frmBook
AutoRedraw = -1 'True
BackColor = &H00FFFFFF&
BorderStyle = 0 'None
ClientHeight = 7755
ClientLeft = 0
ClientTop = 0
ClientWidth = 10080
KeyPreview = -1 'True
LinkTopic = "Form1"
MaxButton = 0 'False
MinButton = 0 'False
ScaleHeight = 7755
ScaleWidth = 10080
ShowInTaskbar = 0 'False
StartUpPosition = 2 '屏幕中心
Begin VB.PictureBox picBook2
AutoRedraw = -1 'True
FillColor = &H00000040&
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00000000&
Height = 7020
Left = 5040
Picture = "frmBook.frx":0000
ScaleHeight = 464
ScaleMode = 3 'Pixel
ScaleWidth = 337
TabIndex = 1
Top = 0
Width = 5115
End
Begin VB.PictureBox picBook1
AutoRedraw = -1 'True
FillColor = &H00000040&
BeginProperty Font
Name = "宋体"
Size = 10.5
Charset = 134
Weight = 400
Underline = 0 'False
Italic = 0 'False
Strikethrough = 0 'False
EndProperty
ForeColor = &H00000000&
Height = 7020
Left = 0
Picture = "frmBook.frx":3AF9
ScaleHeight = 464
ScaleMode = 3 'Pixel
ScaleWidth = 336
TabIndex = 0
Top = 0
Width = 5100
End
Begin VB.Label labelHelp
BackColor = &H00FFFFFF&
Caption = $"frmBook.frx":7A8A
Height = 615
Left = 120
TabIndex = 2
Top = 7080
Width = 4695
End
Begin VB.Image imgMusic
Height = 600
Left = 8400
Picture = "frmBook.frx":7B26
ToolTipText = "我的音乐夹"
Top = 7080
Width = 615
End
Begin VB.Image imgExit
Height = 480
Left = 9360
Picture = "frmBook.frx":DA95
ToolTipText = "离开 "
Top = 7200
Width = 480
End
Begin VB.Image imgOpenCollection
Height = 480
Left = 7560
Picture = "frmBook.frx":DED7
ToolTipText = "我的书架"
Top = 7200
Width = 480
End
End
Attribute VB_Name = "frmBook"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Public intReadFlag As Integer '记录已读行数
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) '处理用户按键
If KeyCode = vbKeyPageDown Or KeyCode = vbKeyDown Then
NextPage '调用过程,下一页
ElseIf KeyCode = vbKeyPageUp Or KeyCode = vbKeyUp Then
PreviousPage '上一页
ElseIf KeyCode = vbKeyHome Then
frmMenu.mnuFirstPage_Click '第一页
ElseIf KeyCode = vbKeyEnd Then
frmMenu.mnuLastPage_Click '最后一页
End If
End Sub
Public Sub NextPage() '显示下一页
Dim rectP1 As RECT
Dim i As Integer
If Not intReadFlag = intChapterLinesNum + 1 Then '到达最后一页时不再翻页
picBook1.Cls
picBook2.Cls
If Not intReadFlag > UBound(strOneChapter()) Then
SetRect rectP1, 170, 415, 200, 430 '显示页数
DrawText picBook1.hdc, Str(intReadFlag / 18 + 1), -1, rectP1, DT_CENTER
End If
For i = 1 To 18 '显示书的左页
If intReadFlag > UBound(strOneChapter()) Then Exit For
SetRect rectP1, 70, 60 + 20 * (i - 1), 310, 60 + 20 * i '设置显示一行的矩形
DrawText picBook1.hdc, strOneChapter(intReadFlag), -1, rectP1, DT_LEFT Or DT_SINGLELINE '在该矩形内显示一行文字
intReadFlag = intReadFlag + 1
Next i
If Not intReadFlag > UBound(strOneChapter()) Then
SetRect rectP1, 120, 415, 150, 430 '显示页数
DrawText picBook2.hdc, Str(intReadFlag / 18 + 1), -1, rectP1, DT_CENTER
End If
For i = 1 To 18 '显示书的右页
If intReadFlag > UBound(strOneChapter()) Then Exit For
SetRect rectP1, 26, 60 + 20 * (i - 1), 266, 60 + 20 * i '设置显示一行的矩形
DrawText picBook2.hdc, strOneChapter(intReadFlag), -1, rectP1, DT_LEFT Or DT_SINGLELINE '在该矩形内显示一行文字
intReadFlag = intReadFlag + 1
Next i
picBook1.Refresh '显示
picBook2.Refresh
End If
End Sub
Public Sub PreviousPage() '显示上一页
Dim rectP1 As RECT
Dim i As Integer
If Not intReadFlag <= 36 Then '到达第一页时不再像前翻页
picBook1.Cls
picBook2.Cls
If intReadFlag = intChapterLinesNum + 1 Then '已读到最后一行时
intReadFlag = intChapterLinesNum - (intChapterLinesNum Mod 36) - 36
Else
intReadFlag = intReadFlag - 72 '设置行数
End If
If Not intReadFlag > UBound(strOneChapter()) Then
SetRect rectP1, 170, 415, 200, 430 '显示页数
DrawText picBook1.hdc, Str(intReadFlag / 18 + 1), -1, rectP1, DT_CENTER
End If
For i = 1 To 18 '显示书的左页
SetRect rectP1, 70, 60 + 20 * (i - 1), 310, 60 + 20 * i '设置显示一行的矩形
DrawText picBook1.hdc, strOneChapter(intReadFlag), -1, rectP1, DT_LEFT Or DT_SINGLELINE '在该矩形内显示一行文字
intReadFlag = intReadFlag + 1
Next i
If Not intReadFlag > UBound(strOneChapter()) Then
SetRect rectP1, 120, 415, 150, 430 '显示页数
DrawText picBook2.hdc, Str(intReadFlag / 18 + 1), -1, rectP1, DT_CENTER
End If
For i = 1 To 18 '显示书的右页
SetRect rectP1, 26, 60 + 20 * (i - 1), 266, 60 + 20 * i '设置显示一行的矩形
DrawText picBook2.hdc, strOneChapter(intReadFlag), -1, rectP1, DT_LEFT Or DT_SINGLELINE '在该矩形内显示一行文字
intReadFlag = intReadFlag + 1
Next i
picBook1.Refresh '显示
picBook2.Refresh
End If
End Sub
Private Sub Form_Load() '程序入口
Dim i As Integer
Dim wfd As WIN32_FIND_DATA
Dim fileHwnd As Long
Dim nodeTem As Node
i = 0
Load frmBookCollection '装载窗体
frmBookCollection.treeBookCollection.ImageList = frmBookCollection.ImageList1
Set nodeTem = frmBookCollection.treeBookCollection.Nodes.Add(, , "我的书架", "我的书架", 4)
Load frmDirectory
Load frmMenu
Load frmMusic
boolBookFlag = False
fileHwnd = FindFirstFile(App.Path & "\bookflag.txt", wfd) '搜索是否存在书签文件
If Not fileHwnd = INVALID_HANDLE_VALUE Then '存在,则打开文件
Open App.Path & "\bookflag.txt" For Input As #1 '读入书签文件信息,并存入strBookFlag()
Do Until EOF(1)
ReDim Preserve strBookFlag(3, i)
Line Input #1, strBookFlag(0, i)
i = i + 1
boolBookFlag = True
Loop
Close #1
End If
FindClose fileHwnd
If boolBookFlag Then
For i = 0 To UBound(strBookFlag(), 2) '分割书签信息
strBookFlag(2, i) = Mid(strBookFlag(0, i), 2, InStr(2, strBookFlag(0, i), "#") - 2) '取出书的地址
strBookFlag(0, i) = Replace(strBookFlag(0, i), "#" & strBookFlag(2, i) & "#", "")
strBookFlag(1, i) = Mid(strBookFlag(0, i), 1, InStr(1, strBookFlag(0, i), "#") - 1) '取出章节名
strBookFlag(0, i) = Replace(strBookFlag(0, i), strBookFlag(1, i) & "#", "") '取出行号
Next i
For i = 0 To UBound(strBookFlag(), 2)
fileHwnd = FindFirstFile(strBookFlag(2, i), wfd) '搜索书签中记录的书是否存在
If fileHwnd = INVALID_HANDLE_VALUE Then '不存在,删除书签
strBookFlag(2, i) = ""
Else '存在
frmDirectory.File1.Path = strBookFlag(2, i) '添加书签中记录的书,为调用AddBook过程,设置File1路径
frmDirectory.AddBook
frmBookCollection.Show
End If
FindClose fileHwnd
Next i
End If
End Sub
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) '单击鼠标右键,弹出菜单
If Button = vbRightButton Then
PopupMenu frmMenu.mnuControl
End If
End Sub
Private Sub imgExit_Click() '关闭程序
EndProgram '调用过程
End Sub
Private Sub imgMusic_Click()
frmMusic.Show
End Sub
Private Sub imgOpenCollection_Click() '打开书架
frmBookCollection.Show
End Sub
Private Sub picBook1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) '单击鼠标右键,弹出菜单
If Button = vbRightButton Then
PopupMenu frmMenu.mnuControl
End If
End Sub
Private Sub picBook2_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) '单击鼠标右键,弹出菜单
If Button = vbRightButton Then
PopupMenu frmMenu.mnuControl
End If
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -