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

📄 用vb放vcd时自定义窗口显示.txt

📁 以电子书的形式收集了VB一些常见问题解决方法,可以很方便的查找自己需要解决的问题.对一些VB初学者很用.
💻 TXT
字号:
硬 件 能 力 的 不 断 提 高 给 使 用 解 压 软 件 播 放 VCD带 来 了 福 音 , 但 使 用 过 解 压 软 件 的 人 可 能 都 会 有 一 种 同 样 的 感 觉 : 大 多 数 的 解 压 软 件 都 有 选 择 驱 动 器 和 选 择 文 件 的 步 骤 , 操 作 起 来 十 分 麻 烦 。 于 是 , 我 就 用 Visual Basic 5.0编 制 了 一 个 播 放 VCD的 程 序 , 可 以 交 由 稍 懂 WINDOWS操 作 的 人 员 使 用 , 至 于 那 些 选 取 驱 动 器 和 文 件 的 操 作 都 交 给 计 算 机 来 做 。 
    建 立 调 节 播 放 进 度 的 滑 动 条   按 照 第 一 步 的 步 骤 建 立 Sspanel2, 设 置 它 的 "Bevelouter"属 性 为 "1-Inset"。 在 表 单 工 具 盒 中 选 择 ( Slider) , 在 Sspanel2中 拉 出 一 个 方 框 ( SliderTime) 。 再 为 SliderTime制 作 两 个 Label标 记 开 始 时 间 和 结 束 时 间 ,设 置 它 们 的 Name属 性 为 Lstart和 Lend, Caption属 性 为 "00:00, 大 小 可 自 己 调 整 。 
    建 立 播 放 按 钮   在 表 单 工 具 盒 中 选 择 ( Mmcontrol) , 在 FormVCD中 拉 出 一 个 方 框 ( MCPlayVCD) , 点 击 鼠 标 右 键 调 出 快 捷 菜 单 并 选 择 "Properties"设 置 其 属 性 。 在 "General"页 中 去 掉 "PrevVisible"、 "NextVisible"、 "BackVisible"、 "StepVisible"和 "RecordVisible"前 的 选 中 符 号 , 按 确 认 键 退 出 。 
    建 立 重 置 按 钮   在 表 单 工 具 盒 中 选 择 ( Sscommand) ,在 FormVCD的 合 适 位 置 建 立 重 置 按 钮 ( Sscommand1) 。 设 置 其 Caption属 性 为 "重 置 ", 字 体 大 小 为 12。 编 写 代 码 
    建 立 程 序 模 块 文 件   在 "Insert"菜 单 中 选 择 "Module",写 入 以 下 代 码 : 
     GENERAL DECLARATIONS 
     Declare Function GetDriveType Lib "kernel32"_ 
         Alias "GetDriveTypeA" (ByVal nDrive As _ 
         String) As Long 
     Declare Function GetProfileString Lib "kernel32"_ 
         Alias "GetProfileStringA" (ByVal_ 
         lpAppName As String, ByVal lpKeyName_ 
         As String, ByVal lpDefault As String, ByVal_ 
         lpReturnedString As String, ByVal nSize As _ 
         Long) As Long 
     
    定 义 公 有 变 量 : 
     GENERAL DECLARATIONS 
     Public Nowfen As Integer, Nowmiao As Integer 
    加 入 FormVCD的 Reload过 程 。 在 "Insert"菜 单 中 选 择 "Procedure… ",在 NAME框 中 填 入 "Reload"后 退 出 。 代 码 如 下 : 
     Public Sub Reload() 
         Dim Drivename As String, I As Integer, A As Integer 
         Nowfen = 0 
         Nowmiao = 0 
         MCPlayVCD.Command = "Close" 
         Drivename = "" 
         ' 查 找 CD-ROM的 驱 动 器 号 
         For I = 65 To 72 
           If GetDriveType(Chr$(I) & ":") = 5 Then 
             Drivename = Chr$(I) & ":" 
     Exit For 
     End If 
     Next 
     ' 查 找 电 影 文 件 ( *.DAT) 的 驱 动 程 序 
     Buffer$ = Space(128) 
         Buffersize = 128 
         Dev = GetProfileString("Mci extensions", "dat",_ 
           "Not Found", Buffer$, Buffersize) 
         ' 确 认 是 否 插 入 了 VCD碟 片 
         On Error GoTo err 
         File1.Path = Drivename + "\mpegav" 
         On Error GoTo 0 
         File1.Pattern = "*.dat" 
         MCPlayVCD.DeviceType = Dev_Type$ 
         MCPlayVCD.filename = File1.Path + "\" + File1.List(0) 
         MCPlayVCD.Command = "open" 
         MCPlayVCD.TimeFormat = vbMCIFormatTmsf 
         MCPlayVCD.UpdateInterval = 0 
         SliderTime.Value = 0 
         SliderTime.Min = 0 
         SliderTime.Max = MCPlayVCD.Length \ 1000 
         Fen = MCPlayVCD.Length \ 60000 
         Lnow.Caption = "00:00" 
         Lsum.Caption = Format$(Fen * 100 + (MCPlayVCD.Length \ 1000 - Fen * 60), "00:00") 
         Lend.Caption = Lsum.Caption 
         Exit Sub 
     err: 
         End 
     End Sub 
     
     编 写 其 它 控 件 的 代 码 
     FormVCD的 Load过 程 ( 装 入 ) : 
     Private Sub Form_Load() 
     FormVCD.Reload 
     End Sub 
     
     MCPlayVCD的 PauseClick 过 程 ( 单 击 暂 停 键 ) : 
     Private Sub MCPlayVCD_PauseClick(Cancel As Integer) 
     MCPlayVCD.UpdateInterval = 0 
     End Sub 
     
     MCPlayVCD的 PlayClick 过 程 ( 单 击 播 放 键 ) : 
     Private Sub MCPlayVCD_PlayClick(Cancel As Integer) 
     MCPlayVCD.UpdateInterval = 1000 
     End Sub 
     
     MCPlayVCD的 StatusUpdate过 程 ( 定 时 器 ) : 
     Private Sub MCPlayVCD_StatusUpdate() 
         If Nowmiao = 59 Then 
           Nowmiao = 0 
     Nowfen = Nowfen + 1 
     Else 
     Nowmiao = Nowmiao + 1 
     End If 
         SliderTime.Value = SliderTime.Value + 1 
         Lnow.Caption = Format$(Nowfen * 100 + _Nowmiao, "00:00") 
         If Lnow.Caption >= Lsum.Caption Then 
     Lnow.Caption = Lsum.Caption 
     MCPlayVCD.UpdateInterval = 0 
         End If 
     End Sub 
     
     MCPlayVCD的 StopClick过 程 ( 单 击 停 止 键 ) : 
     
     Private Sub MCPlayVCD_StopClick(Cancel_As Integer) 
         MCPlayVCD.UpdateInterval = 0 
         MCPlayVCD.To = MCPlayVCD.Start 
         MCPlayVCD.Command = "Seek" 
         Lnow.Caption = "00:00" 
         SliderTime.Value = 0 
     End Sub 
     
     SliderTime的 Change过 程 ( 滑 动 条 改 变 ) : 
     
     
     Private Sub SliderTime_Change() 
         MCPlayVCD.UpdateInterval = 1000 
         MCPlayVCD.From = SliderTime.Value * 1000 
         MCPlayVCD.Command = "play" 
         Nowfen = SliderTime.Value \ 60 
         Nowmiao = SliderTime.Value - Nowfen * 60 
         If Nowfen = SliderTime.Max / 60 And Nowmiao_>= SliderTime.Value - SliderTime.Value / 60 Then 
     MCPlayVCD.UpdateInterval = 0 
         Else 
             MCPlayVCD.UpdateInterval = 1000 
         End If 
     End Sub 
     
     SSCommand1的 Click 过 程 ( 单 击 重 置 按 钮 ) : 
     Private Sub SSCommand1_Click() 
     FormVCD.Reload 
     End Sub 
     
     FormVCD的 Unload过 程 ( 装 入 ) : 
     Private Sub Form_Unload(Cancel As Integer) 
     MCPlayVCD.Command = "Close" 
     End Sub 
    编 译 、 运 行 
    按 F5键 可 直 接 运 行 , 若 无 误 可 选 择 "File"菜 单 中 的 "Make EXE File … "将 其 编 译 成 可 执 行 文 件 在 WINDOWS中 直 接 运 行 。 本 程 序 可 用 于 所 有 的 解 压 软 件 , 以 上 程 序 在 Visual Basic 5.0和 Windows 95中 运 行 通 过 。 
    建 立 显 示 屏 上 的 显 示 文 字   在 表 单 工 具 盒 中 选 择 ( Label) , 在 Sspanel1中 拉 出 一 个 方 框 , 设 置 其 属 性 Name为 "Lasum",Autosize为 TRUE, Caption为 "电 影 总 长 ", 字 体 样 式 为 "BOLD"( 粗 体 ) , 字 体 大 小 为 10, 字 体 颜 色 为 绿 色 ; 按 同 样 方 法 在 第 一 个 Label的 右 方 建 立 另 一 个 Label, 设 置 其 属 性 Name为 "Lsum",Autosize为 TRUE, Caption为 "00:00", 字 体 样 式 为 "BOLD"( 粗 体 ) , 字 体 大 小 为 10, 字 体 颜 色 为 绿 色 ; 再 在 这 两 个 Label的 下 方 各 建 立 一 个 Label, 分 别 设 置 它 们 的 属 性 Name为 "Lanow"和 "Lnow",Caption为 "播 放 进 度 "和 "00:00", 其 余 属 性 相 同 。   
    建 立 一 个 显 示 屏   在 表 单 工 具 盒 中 选 择 ( Sspanel) , 在 FormVCD上 拉 出 一 个 矩 形 方 框 ( Sspanel1) , 点 击 鼠 标 右 键 调 出 快 捷 菜 单 并 选 择 "Properties"设 置 其 属 性 。 在 "3D Effects"页 中 选 择 "Bevelouter"设 置 其 为 "1-Inset"( 下 凹 ) , 在 "Colors"页 中 设 置 "BackColor"属 性 为 黑 色 。 
    图 中 可 以 看 到 操 作 界 面 仅 有 几 个 按 钮 和 一 个 滑 动 条 , 如 果 光 驱 内 装 有 正 确 的 VCD碟 片 就 可 以 直 接 按 ( 播 放 键 ) 进 行 播 放 , 同 时 屏 幕 上 显 示 有 电 影 的 总 长 度 和 已 播 放 的 进 度 , 还 可 通 过 调 节 滑 动 条 播 放 VCD碟 片 上 的 任 意 部 分 。 具 体 的 制 作 步 骤 如 下 : 
    进 入 Visual Basic 5.0中 , 在 表 单 工 具 盒 中 点 击 鼠 标 右 键 , 在 弹 出 菜 单 中 选 择 "Custom Controls … ", 在 "Available Controls"栏 中 选 中 "  Microsoft MultiMedia Control"、 "Microsoft Windows Common Control"和 "Sheridan 3D Controls", 按 确 认 键 退 出 。 设 置 FormVCD的 Caption属 性 为 "VCD播 放 机 "。 在 表 单 工 具 盒 中 选 择 ( FilelistBox) , 在 FormVCD上 建 立 一 个 文 件 列 表 框 ( ListFiles) , 设 置 它 的 Pattern属 性 为 "*.DAT", Visible属 性 为 FALSE( 不 可 见 ) 。 
<END>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -