在Form窗体中添加两个Command控件,我想在Command1_Click()事件时触发一个背景音乐(最好是可以播放任何格式),而在Command2_Click()事件时关闭背景音乐.请各位高手给指点一下.谢谢!

解决方案 »

  1.   

    //最好是可以播放任何格式
    不可能的,除非你的计算机安装了任何格式的解码器多媒体软件中,声音是重要组成部分。而VB中却没有直接调用声音文件的语句。所以要在VB5.0中定义了一个调用声音文件的函数。
    例子: 
    取&H0时:为同步播放模式;
    取&H1时:为异步播放模式;
    取&H2时:当声音文件未找到就停止播音返回;
    取&H8时:为循环播放模式。
    当调用函数成功,就播放有关声音文件,并且函数的返回值为非0;函数调用失败,函数的返回值为0。
    定义调用声音文件函数的具体步骤如下:
    ①在C盘根目录上建立一个名为Sound的文件夹,在此文件夹中放入5个你所需要的声音文件;
    ②在VB5.0状态进入“工程”菜单中的“添加模块”再选用“新建”中的“模块”;
    ③在模块的“通用”中输入下面代码,进行调用API函数的声明;
    Declare Function sndPlaySound Lib "winmm.dll" Alias
    “sndPlaySoundA" (ByV al lpszSoundName As String, ByVal uFlags As Long) As Long
    Dim fil As String
    ④在模块中输入以下代码,定义调用声音文件函数。
    Public Function sound(n As Integer) As Integer
    Dim x As Integer
    Select Case n
    Case 1
    fil = "c:soundbeep3.wav"
    x = sndPlaySound(0, 0)
    x = sndPlaySound(fil, &H1 Or &H2)
    sound = x 
    Case 2
    fil = "c:soundhit8.wav"
    x = sndPlaySound(0, 0)
    x = sndPlaySound(fil, &H1 Or &H2)
    sound = x
    Case 3
    fil = "c:soundnet7.wav"
    x = sndPlaySound(0, 0)
    x = sndPlaySound(fil, &H1 Or &H2)
    sound = x
    Case 4
    fil = "c:soundout12.wav"
    x = sndPlaySound(0, 0)
    x = sndPlaySound(fil, &H1 Or &H2)
    sound = x
    Case 5 
    fil = "c:soundspin5.wav"
    x = sndPlaySound(0, 0)
    x = sndPlaySound(fil, &H1 Or &H2)
    sound = x
    Case Else
    sound = 0
    End Select
    End Function
    新定义的调用声音函数格式为:sound(n),其中n的取值为1至5的正整数。利用此函数可调用5个不同的声音文件。下面是使用sound函数的演示程序: 
    ①如图在form窗口设置6个命令控件;
    ②在这些命令控件的Click事件中入分别输入以下代码。 
    Private Sub Command1_Click()
    l = sound(1)
    End Sub
    Private Sub Command2_Click()
    l = sound(2)
    End Sub
    Private Sub Command3_Click()
    l = sound(3)
    End Sub
    年Private Sub Command4_Click()
    l = sound(4)
    End Sub
    Private Sub Command5_C lick()
    End Sub
    Private Sub Command6_Click()
    End
    End Sub
    运行程序后,单击有关按钮就能调用所指定的声音文件,发出各种声音。