'清屏
For I = 0 To W Step 1
For J = 0 To H Step 1
'从左向右的显示图像
BitBlt Picture2.hDC, I, J, 1, 1, Picture1.hDC, I, J, srccopy
'图像不旋转
Next J
Next I
End Sub
Private Sub Form_Load()
Picture2.Picture = LoadPicture("e:\user\ylm\api\key.bmp")
'控件的初始化
H = Picture1.Height
W = Picture1.Width
End Sub
前面已经介绍过利用MMControl控件制作一个CD播放器,实现起来十分的方便,但是,以下将要介绍的利用API函数制作CD播放器则更加简单和易用,只需要了解一个API函数——mciExecute()函数即可。
在这里制作CD播放器不用添加多媒体控件,只需要写几行代码即可,具体的步骤如下:
首先用鼠标选择Windows操作系统“开始”菜单中的“程序”/Microsoft Visual Studio中的Microsoft Visual Basic 选项来激活Visual Basic 应用程序,在Vbisual Basic 6.0的集成开发环境中用鼠标选择“文件”菜单中的“新建工程”选项。在“新建工程”对话框中选择“标准EXE”选项,单击“确定”按钮,在Visual Basic 中就新建了一个标准的工程文件,同时打开了一个空白的窗体。
在空白窗体的声明段中添加对函数mciExecute()的声明;
Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
在窗体上添加六个CommandButton控件和四个OptionButton控件,它们的属性设置如表9-9所示。
表9-9 控件的属性及其设置
|
控 件 |
属 性 |
设 置 |
|
CommandButton控件 |
(Name) |
Open |
|
Caption |
打开 | |
|
CommandButton控件 |
(Name) |
Play |
|
Caption |
播放 | |
|
CommandButton控件 |
(Name) |
stop1 |
|
Caption |
停止/暂停 | |
|
CommandButton控件 |
(Name) |
Eject |
|
Caption |
弹碟 | |
|
CommandButton控件 |
(Name) |
Close1 |
|
Caption |
装入光碟 | |
|
CommandButton控件 |
(Name) |
Exit |
|
Caption |
退出 | |
|
OptionButton控件 |
(Name) |
Option1 |
|
Caption |
左声道输出 | |
|
Value |
False | |
|
OptionButton控件 |
(Name) |
Option2 |
|
Caption |
右声道输出 | |
|
Value |
False | |
|
OptionButton控件 |
(Name) |
Option3 |
|
Caption |
立体声输出 | |
|
Value |
True | |
|
OptionButton控件 |
(Name) |
Option4 |
|
Caption |
静音 | |
|
Value |
False |
添加控件后的窗体如图9-14所示。

图9-14 添加控件后的窗体
由于在未打开CDAudio设备之前不能够对它进行播放等操作,所以要在窗体的Form_Load()过程中添加有关控件的初始化代码如下:
Private Sub Form_Load()
play.Enabled = False
stop1.Enabled = False
eject.Enabled = False
close1.Enabled = False
option1.Enabled = False
option2.Enabled = False
option3.Enabled = False
option4.Enabled = False
'初始化按钮的状态
End Sub
在程序刚刚开始运行时,由于还没有打开相应的CDAudio设备,还不能够对它执行操作,所以“播放”、“弹碟”、“停止/暂停”和“装入光碟”按钮处于无效的状态,同理,四个OptionButton控件也应该处于无效的状态。
下面以“打开”按钮为例来添加代码,在设计阶段双击“打开“按钮,在open_Click()事件中添加下列代码:
Private Sub open_Click()
mciExecute "open cdaudio alias cd"
'打开CDAudio设备
play.Enabled = True
stop1.Enabled = True
eject.Enabled = True
close1.Enabled = False
Option1.Enabled = True
Option2.Enabled = True
Option3.Enabled = True
Option4.Enabled = True
'设置按钮的状态
End Sub
程序首先通过mciExecute "open cdaudio alias cd"这一条语句来打开CDAudio设备,然后可以对各个按钮的有效状态进行相应的设置,如“播放”按钮应处于有效的状态,而“装入光碟”按钮则应该处于无效的状态。
其余几个CommandButton控件的代码就不一一的解释了,具体的代码请参见后面所服的源程序。
在打开CDAudio设备后,播放CD音乐之前,可以通过四个OptionButton控件来选择声音的输出形式,如“左声道输出”和“立体声输出”等,代码如下:
Private Sub play_Click()
If Option1(0).Value Then
mciExecute "set cd audio right off"
'关闭右声道
mciExecute "set cd audio left on"
'打开左声道
ElseIf Option2(1).Value Then
mciExecute "set cd audio left off"
'关闭左声道
mciExecute "set cd audio right on"
'打开右声道
ElseIf Option3(2).Value Then
mciExecute "set cd audio all on"
mciExecute "set cd audio left on"
mciExecute "set cd audio right on"
'立体声播放CD
ElseIf Option4(0).Value Then
mciExecute "set cd audio all off"
'静音
End If
mciExecute "play cd"
'播放CD
End Sub
在播放CD音乐之前,即mciExecute "play cd"语句执行之前,通过一个条件判断语句来确定用户对声音输出形式的选择,比如选择“右声道输出”,那么在播放CD音乐之前程序会执行下面的几条语句:
mciExecute "set cd audio left off"
'关闭左声道
mciExecute "set cd audio right on"
'打开右声道
即首先关闭左声道,打开右声道,然后再执行相应的播放等操作。
在剩余的控件中添加能够实现相应功能的代码,如在“退出”按钮中添加下列代码:
Private Sub exit_Click()
mciExecute "close cd"
'关闭CD设备
End
'结束运行
End Sub
其余几个控件的详细代码见附后的程序源代码。
存储文件,运行程序,初始画面如图9-15所示。

图9-15 程序运行初始画面
在程序运行时,单击“打开”按钮,这时“播放”按钮变为有效的状态,单击“播放”按钮,从音箱的右声道中就可以听到CD音乐的声音,结果如图9-16所示。

图9-16 运行结果
附源程序如下:
程序清单
Private Declare Function mciExecute Lib "winmm.dll" (ByVal lpstrCommand As String) As Long
'声明函数
Private Sub close1_Click()
mciExecute "set cd door closed"
'合上光驱
close1.Enabled = False
eject.Enabled = True
End Sub
Private Sub eject_Click()
mciExecute "set cd door open"
'弹出光碟
eject.Enabled = False
close1.Enabled = True
'设置按钮的状态
End Sub
Private Sub exit_Click()
mciExecute "close cd"
'关闭CD设备
End
'结束运行
End Sub
Private Sub Form_Load()
play.Enabled = False
stop1.Enabled = False
eject.Enabled = False
close1.Enabled = False
Option1.Enabled = False
Option2.Enabled = False
Option3.Enabled = False
Option4.Enabled = False
'初始化按钮的状态
End Sub
Private Sub open_Click()
mciExecute "open cdaudio alias cd"
'打开CD设备
play.Enabled = True
stop1.Enabled = True
eject.Enabled = True
close1.Enabled = False
Option1.Enabled = True
Option2.Enabled = True
Option3.Enabled = True
Option4.Enabled = True
'设置按钮的状态
End Sub
Private Sub Option1_Click(Index As Integer)
mciExecute "set cd audio right off"
'关闭右声道
mciExecute "set cd audio left on"
'打开左声道
End Sub
Private Sub Option2_Click(Index As Integer)
mciExecute "set cd audio left off"
'关闭左声道
mciExecute "set cd audio right on"
'打开右声道
End Sub
Private Sub Option3_Click(Index As Integer)
mciExecute "set cd audio all on"