Windows操作系统具有伴随着某些特定系统事件的声音设置,如警告对话框的显示时发出声音。在你的程序中,通过使用标准Visual Basic Beep命令而改变这些声音,你将会得到一个丰富多彩的系统。
这些系统声音并不是固定不变的,这一意识相当重要。当Windows首次安装时,默认声音配置就为某一系统事件设置了特定的声音。例如,文件Chord.wav中的声音被设置为Question(提问)声音。但是,用户可以在控制面板上通过使用Sounds小程序来改变这些设置。用户可以给每一系统声音甚至是没有声音的事件分配不同的声音文件。这就意味着,当你使用这一技术时,你将不能确定使用到哪种声音,将要播放的声音都是用户选择的声音类型。
为了播放Windows系统声音,使用API函数MessageBeep。这里为这一函数的声明:
Declare Function MessageBeep Lib "user32" (ByVal wType As Long) As Long
这一函数的其中一个变量用于识别要播放的声音类型。可以使用以下的常量来识别声音类型:
Public Const MB_ICONASTERISK = &H40&
Public Const MB_ICONEXCLAMATION = &H30&
Public Const MB_ICONQUESTION = &H20&
Public Const MB_ICONHAND = &H10&
这里的前三个变量在控制面板中分别定义为Asterisk, Exclamation,以及Question。第四个变量即MB_ICONHAND,对应控制面板中的Critical Stop声音。你也可以通过赋值&HFFFFFFFF来播放标准的Beep声音。
这里有一个例子,例子演示了如何在程序中使用这一函数。当用户需要确认文件删除操作时,就发出提问声音。
MessageBeep (MB_ICONQUESTION)
reply = MsgBox("Delete file - are you
sure?", vbYesNoCancel, _
"Delete file?")