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

📄 frmbook.frm

📁 用VB语言编写的电子书阅读器
💻 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 + -