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

📄 wave.frm

📁 不错的一个VB菜单设计 界面和功能都不错
💻 FRM
字号:
VERSION 5.00
Object = "{75D4F4A8-8785-11D3-93AD-0000832EF44D}#2.0#0"; "FAST2007.ocx"
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "Comdlg32.ocx"
Begin VB.Form frmWave 
   BorderStyle     =   3  'Fixed Dialog
   Caption         =   "Wave Information"
   ClientHeight    =   5445
   ClientLeft      =   45
   ClientTop       =   330
   ClientWidth     =   6465
   Icon            =   "Wave.frx":0000
   LinkTopic       =   "Form1"
   LockControls    =   -1  'True
   MaxButton       =   0   'False
   MinButton       =   0   'False
   ScaleHeight     =   5445
   ScaleWidth      =   6465
   ShowInTaskbar   =   0   'False
   StartUpPosition =   2  'CenterScreen
   Begin VB.PictureBox picWave 
      Height          =   3285
      Left            =   90
      ScaleHeight     =   3225
      ScaleWidth      =   6225
      TabIndex        =   2
      Top             =   2070
      Width           =   6285
   End
   Begin VB.CommandButton cmdSelect 
      Caption         =   "Select Wave.."
      Height          =   420
      Left            =   4800
      TabIndex        =   0
      Top             =   180
      Width           =   1545
   End
   Begin MSComDlg.CommonDialog dlgOpen 
      Left            =   5970
      Top             =   720
      _ExtentX        =   847
      _ExtentY        =   847
      _Version        =   393216
      DialogTitle     =   "Select a bitmap"
      Filter          =   "Wave files|*.wav|All files|*.*"
   End
   Begin FLWMMedia.FWWave objWave 
      Left            =   5940
      Top             =   1380
      _ExtentX        =   820
      _ExtentY        =   820
   End
   Begin VB.Label lblInfo 
      Height          =   1935
      Left            =   90
      TabIndex        =   1
      Top             =   90
      Width           =   4350
      WordWrap        =   -1  'True
   End
End
Attribute VB_Name = "frmWave"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit


Private Sub cmdSelect_Click()
  dlgOpen.CancelError = False
  dlgOpen.ShowOpen
  
  Call picWave.Cls
  If objWave.Create(dlgOpen.FileName) Then
    With objWave
      lblInfo = dlgOpen.FileName & vbCrLf & _
                IIf(.Stereo, "Stereo", "Mono") & vbCrLf & _
                .Channels & " channels" & vbCrLf & _
                "Block align " & .BlockAlign & vbCrLf & _
                .AverageBytesPerSecond & " bytes per second" & vbCrLf & _
                .SamplesPerSecond & " samples per second"
      .samples.CurrentSample = 0
      Call DrawWaves
    End With
  Else
    lblInfo = "Select a wave file"
  End If
End Sub

Public Sub DrawWaves()
  Dim lngInd        As Long
  Dim dblLeftY      As Long
  Dim dblRightY     As Long
  Dim dblLastX      As Long
  Dim dblLastLeftY  As Long
  Dim dblLastRightY As Long
  Dim lngAmplitude  As Long
  Dim dblLeft       As Double
  Dim dblRight      As Double
  Dim dblFactor     As Double
  Dim dblStep       As Double
   
  dblFactor = (objWave.samples.NumSamples - objWave.samples.CurrentSample) / picWave.Width
  dblStep = IIf(dblFactor < 1, 1 / dblFactor, 1)
   
  If objWave.samples.Stereo Then
    lngAmplitude = picWave.Height * 0.25
       
    For lngInd = 0 To picWave.Width Step dblStep
      objWave.samples.CurrentSample = dblFactor * lngInd
      Call objWave.samples.GetSample(dblLeft, dblRight)
      
      dblRightY = CLng(dblRight * lngAmplitude)
      dblLeftY = CLng(dblLeft * lngAmplitude)
      picWave.Line (dblLastX, lngAmplitude + dblLastLeftY)-(lngInd, dblLeftY + lngAmplitude)
      picWave.Line (dblLastX, lngAmplitude * 3 + dblLastRightY)-(lngInd, dblRightY + lngAmplitude * 3)
      dblLastLeftY = dblLeftY
      dblLastRightY = dblRightY
      dblLastX = lngInd
    Next
  Else
    lngAmplitude = picWave.Height * 0.5
      
    For lngInd = 0 To picWave.Width Step dblStep
      objWave.samples.CurrentSample = dblFactor * lngInd
      Call objWave.samples.GetSample(dblLeft, dblRight)
      
      dblLeftY = CLng(dblLeft * lngAmplitude)
      picWave.Line (dblLastX, lngAmplitude + dblLastLeftY)-(lngInd, dblLeftY + lngAmplitude)
      dblLastLeftY = dblLeftY
      dblLastX = lngInd
    Next
  End If
End Sub

⌨️ 快捷键说明

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