📄 ba47.htm
字号:
<HTML>
<HEAD>
<TITLE>调用声音文件的VB函数</TITLE>
<META content="text/html; charset=gb2312" http-equiv=Content-Type>
</head>
<p align="center"><script src="../../1.js"></script></a>
<BODY topMargin=4 vLink=#0000ff>
<TABLE border=0 cellPadding=0 cellSpacing=0 width="100%">
<TBODY>
<TR>
<TD height="52">
<DIV align=center>
<CENTER>
<table border=0 cellpadding=0 cellspacing=0 width=679 align="center">
<tbody>
<tr>
<td width=200 height="59">
</TD></TR><!--msnavigation--></TBODY></TABLE>
<table border=0 cellpadding=0 cellspacing=0 width="100%">
<tbody>
<tr><!--msnavigation--><td valign=top height="123">
<div align=center>
<table border=1 bordercolor=#b9d9ff cellpadding=0 cellspacing=0
class=table width=755>
<center>
<tr>
<td width="100%" height="3">
<div align="center"><span style="FONT-SIZE: 9pt; LINE-HEIGHT: 18px"><big>调用声音文件的VB函数</big></span> <strong></strong></span></div>
</td>
</tr>
<tr>
<td
width="100%" class="unnamed1" height="124">
<div align="left">
<p align="center"><span style="FONT-SIZE: 9pt; LINE-HEIGHT: 18px"></span></p>
<p><span style="FONT-SIZE: 9pt; LINE-HEIGHT: 18px">
多媒体软件中,声音是重要组成部分。而VB中却没有直接调用声音文件的语句。于是笔者在VB5.0中定义了一个调用声音文件函数。调用此函数时只需带上不同的参数,就能执行不同的声音文件并发出<font size="-1">各种声音。利用此函数在编制多媒体软件时可以带来很大方便。<br>
定义调用声音文件函数时用到了Windows播放声音的API函数。现先将此API函数作简单介绍sndPlaySound(参数1,参数2)其中:参数1描述要播放的声音文件的位置和文件名;参数2的取值能决定播放声音的模</font>式。参数2的主要取值介绍如下:<br>
取&H0时:为同步播放模式;<br>
取&H1时:为异步播放模式;<br>
取&H2时:当声音文件未找到就停止播音返回;<br>
取&H8时:为循环播放模式。<br>
当调用函数成功,就播放有关声音文件,并且函数的返回值为非0;函数调用失败,函数的返回值为0。<br>
定义调用声音文件函数的具体步骤如下:<br>
①在C盘根目录上建立一个名为Sound的文件夹,在此文件夹中放入5个你所需要的声音文件;<br>
②在VB5.0状态进入“工程”菜单中的“添加模块”再选用“新建”中的“模块”;<br>
③在模块的“通用”中输入下面代码,进行调用API函数的声明;<br>
Declare Function sndPlaySound Lib
"winmm.dll" Alias<br>
“sndPlaySoundA" (ByV al lpszSoundName
As String, ByVal uFlags As Long) As Long<br>
Dim fil As String<br>
④在模块中输入以下代码,定义调用声音文件函数。<br>
Public Function sound(n As Integer) As
Integer<br>
Dim x As Integer<br>
Select Case n<br>
Case 1<br>
fil = "c:\sound\beep3.wav"<br>
x = sndPlaySound(0, 0)<br>
x = sndPlaySound(fil, &H1 Or &H2)<br>
sound = x <br>
Case 2<br>
fil = "c:\sound\hit8.wav"<br>
x = sndPlaySound(0, 0)<br>
x = sndPlaySound(fil, &H1 Or &H2)<br>
sound = x<br>
Case 3<br>
fil = "c:\sound\net7.wav"<br>
x = sndPlaySound(0, 0)<br>
x = sndPlaySound(fil, &H1 Or &H2)<br>
sound = x<br>
Case 4<br>
fil = "c:\sound\out12.wav"<br>
x = sndPlaySound(0, 0)<br>
x = sndPlaySound(fil, &H1 Or &H2)<br>
sound = x<br>
Case 5 <br>
fil = "c:\sound\spin5.wav"<br>
x = sndPlaySound(0, 0)<br>
x = sndPlaySound(fil, &H1 Or &H2)<br>
sound = x<br>
Case Else<br>
sound = 0<br>
End Select<br>
End Function<br>
新定义的调用声音函数格式为:sound(n),其中n的取值为1至5的正整数。利用此函数可调用5个不同的声音文件。下面是使用sound函数的演示程序:
<br>
①如图在form窗口设置6个命令控件;<br>
②在这些命令控件的Click事件中入分别输入以下代码。 <br>
Private Sub Command1_Click()<br>
l = sound(1)<br>
End Sub<br>
Private Sub Command2_Click()<br>
l = sound(2)<br>
End Sub<br>
Private Sub Command3_Click()<br>
l = sound(3)<br>
End Sub<br>
年Private Sub Command4_Click()<br>
l = sound(4)<br>
End Sub<br>
Private Sub Command5_C lick()<br>
End Sub<br>
Private Sub Command6_Click()<br>
End<br>
End Sub<br>
运行程序后,单击有关按钮就能调用所指定的声音文件,发出各种声音。<br>
(江苏苏州市景范中学 赵旭 215005)<br>
选择字段浏览程序<br>
虽然FoxPro系统给我们提供USE、BROW命令来打开数据库进行浏览,如果是浏览指定的数据库文件和全部字段还比较方便,当频繁打开不同目录的数据库文件或只想浏览部分字段时,使用上述过程就显得力不从心了。下面这个小程序可以把当前硬盘和软盘所有目录下的数据库文件列出,当您选择到一个数据库文件后,又将库中所有字段列出,您可以有选择地进行浏览,从而使数据库选择字段浏览相当简便。<br>
SET TALK ON<br>
SET COLO TO W/N,R/B,R && 使选择字段时, 屏幕显示所选的字段<br>
SET COLOR OF SCHEME 2 TO BG/W,N/W,N/W,B/W,B/BG,W+/R,GR+/W,N+/N,B/W,W/N,+<br>
DO WHIL .T.<br>
DEFINE POPUP database FROM 2,10 to 15,30
PROMPT FILES LIKE *.dbf colo sche 2;<br>
MESSAGE “移动↑↓光标键,选择数据库文件目录,其它键退出”<br>
ON SELECTION POPUP database DO Database<br>
DEFINE POPUP fieldlist FROM 2,26 TO 15,46
PROMPT STRUCTURE MARGIN;<br>
MESSAGE “按<ENTER>选择字段,然后按<ESC>进行浏览”<br>
ON SELECTION POPUP fieldlist DO Fieldlist<br>
CLEAR <br>
@ 1,11 SAY “ 选择一个数据库:” COLO B/G<br>
ACTIVATE POPUP database<br>
@ 1,11 SAY “ ” COLO N/N <br>
IF NOT EMPTY(DBF()) && 如果选择了一个数据库<br>
@ 1,29 SAY “ 选择数据库字段:”COLO R/G<br>
mfieldlist =“ ” && 字段选择变量<br>
ACTIVATE POPUP fieldlist&&激活菜单显示数据库字段<br>
IF NOT EMPTY(mfieldlist)<br>
mfieldlist = “FIELDS ” + LEFT(mfieldlist,
LEN(mfieldlist)-1)<br>
*在字段选择变量中增加 “FILEDS”, 并除去尾部逗号. <br>
ENDIF<br>
BROWSE &mfieldlist COLO R+/BG+<br>
* 浏览所选择的数据库和所选择的字段<br>
ENDIF<br>
RELEASE POPUP database, fieldlist<br>
CLEA<br>
XX=" "<br>
@ 23,24 SAY "还继续浏览数据库吗(y/Y)?"
GET XX COLO B+/W<br>
READ<br>
IF UPPER(XX)="Y".OR.XX="Y"<br>
LOOP<br>
ELSE<br>
EXIT<br>
ENDIF<br>
ENDDO<br>
SET TALK OFF<br>
CLOSE DATABASE<br>
QUIT<br>
RETURN<br>
* Process database file list selection<br>
PROCEDURE Database<br>
USE PROMPT() <br>
&& 打开所选择的数据库<br>
DEACTIVATE POPUP database<br>
RETURN<br>
PROCEDURE Fieldlist<br>
IF NOT PROMPT() $ mfieldlist<br>
mfieldlist = mfieldlist + PROMPT() + ","<br>
* 在字段选择变量中增加字段和逗号<br>
ENDIF<br>
RETURN<br>
(河北省邯郸市峰峰矿务局 左巍 056207) </span>
</div>
</td>
</tr>
</center>
<tr>
<td width="100%" class="unnamed1">
<p align=right><a href="ba46.htm">(上一页)</a>---<a href="ba48.htm">(下一页)</a></p>
</td>
</tr>
<tr>
<td width="100%" class="unnamed1">
</div>
</td>
</tr>
<!--msnavigation--></tbody>
</table>
<p align="center"><script src="../../2.js"></script></a>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -