发信人: msnet()
整理人: jinhu(1999-07-13 10:37:55), 站内信件
|
编者的话
====================================================================
大家好!
欢迎大家回答问题和提出问题,同时也欢迎大家
提供有关VB、VBA和ASP的好作品。
近来一段进入汛期,VB邮件没能及时发送,敬请
各位网友原谅。
版主 冯德平
[email protected]
=============================================
目 录
a 处理多个具有相同要求的控件
b 产生一个GUID
c 波形音频设备API的简介
=============================================
VB邮件(7.7)
a 处理多个具有相同要求的控件
我们往往有时需要处理多个具有相同特性的控件,如:把 100 个 Text 及 Label 的内容加起来。这时,我们可以使用下面的技巧:
1.如果是同一种类型的控件,我们可以使用控件组达到目标。
2.如果不是同一类型控件,控件组就无法使用,这时,我们还可以利用控件 的 Tag 性,我们可以把每个控件设置一个 Tag 标志。在程序中,我们可以用下 面代码来察看是否是我们需要的控件:
For i=0 To Controls.Count-1
If Controls(i).Tag = "MyTag" Then ......
Next i
b 产生一个GUID
什么是GUID?GUID是Globally Unique IDentifier的缩写.由一个特殊的算法来产 生这些128位的数,并保证不产生重复的GUID—重复的可能性当然存在,但有太多可 用的数了,因此算法特别防止产生重复的数,这种情况你一生都不会看到. Active X控件都有一个用于相互区别的GUID.你如何在自己的程序中使用GUID呢? 例如,当 一个数据库的每个条目都需要由一个唯一的键值时.下面的代码将给你一个答案:
向窗体frmTest中放置一个名为cmdGUID的按钮和一个名为txtGUID的文本框,加入 一下代码:
Option Explicit
Private Type GUID
Data1 As Long
Data2 As Long
Data3 As Long
Data4(8) As Byte
End Type
Private Declare Function CoCreateGuid Lib "ole32.dll" (pguid As GUID) As Long
Private Declare Function StringFromGUID2 Lib "ole32.dll"(rguid As Any, ByVal lpstrClsId As Long,ByVal cbMax As Long) As Long
Private Function GUIDGen() As String
Dim uGUID As GUID
Dim sGUID As String
Dim bGUID() As Byte
Dim lLen As Long
Dim RetVal As Long
lLen = 40
bGUID = String(lLen, 0)
CoCreateGuid uGUID '把结构转换为一个可显示的字符串
RetVal = StringFromGUID2(uGUID, VarPtr(bGUID(0)), lLen)
sGUID = bGUID
If (Asc(Mid$(sGUID, RetVal, 1)) = 0) Then RetVal = RetVal - 1
GUIDGen = Left$(sGUID, RetVal)
End Function
Private Sub cmdGUID_Click()
txtGUID.Text = GUIDGen
End Sub
运行程序.
每次点击按钮,文本框中都会出现一个不同的数值. 你可能要点上无数年才会看到 一个重复的数值.
c 波形音频设备API的简介
由于我还没有用下面的API编过程序,只查资料了解了一下,所以不能保证其 完全正确。而且,好象
一般不会用这些API编程,用mcisendstring()就可以有比较好的效果了。
下面的API针对的是Waveform Audio(波形音频),从字面上就可以看出,下 面的API还分In、Out。
对了,他们还分别针对输入、输出音频设备。
前面的中文是我自己写的,后面的E文是原文。
辅助设备 Auxiliary Devices
auxGetDevCaps 得到一个辅助输出设备的功能信息
(如:设备制造商、设备版本、设备的类型等)
auxGetNumDevs 得到一个辅助输出设备在系统中的号码
auxGetVolume 得到一个辅助输出设备当前的音量
auxOutMessage 发一个消息给一个辅助输出设备
auxSetVolume 设置一个辅助输出设备的音量
错误 Errors
waveInGetErrorText 得到一个输入设备的错误信息
waveOutGetErrorText 得到一个输出设备的错误信息
打开、关闭 Opening and Closing
waveInClose 关闭一个输入设备
waveInOpen 打开一个输入设备
waveOutClose 关闭一个输出设备
waveOutOpen 打开一个输出设备
音调? Pitch
waveOutGetPitch 得到一个输出设备的音调?
waveOutSetPitch 设置一个输出设备的音调?
(我对音乐了解的还不够多……这个Pitch嘛……音调指的是什么……)
播放比率? Playback Rate
waveOutGetPlaybackRate 得到一个输出设备的比率?
waveOutSetPlaybackRate 设置一个输出设备的比率?
(比率?天啊,什么乱七八糟的…………)
播放进展 Playback Progress
waveOutBreakLoop 破坏循环?(我也不太清楚,Sorry)
waveOutPause 使输出设备暂停
waveOutReset 使输出设备停止
waveOutRestart 使输出设备从头开始
播放 Playing
waveOutPrepareHeader 为播放准备一个数据块
waveOutUnprepareHeader 清除数据块
waveOutWrite 将准备好的数据块发送到输出设备
质问一个设备 Querying a Device(得到一个设备的功能信息)
waveInGetDevCaps 得到一个输入设备的功能信息
waveInGetNumDevs 得到一个输入设备在系统中的号码
waveOutGetDevCaps 得到一个输出设备的功能信息
waveOutGetNumDevs 得到一个输出设备在系统中的号码
录音 Recording
waveInAddBuffer 发送一个输入缓冲到输入设备
waveInPrepareHeader 为输入设备准备一个缓冲
waveInReset 停止向输入设备输入数据,并且将指针恢复到0
waveInStart 开始向输入设备输入数据
waveInStop 停止向输入设备输入数据
waveInUnprepareHeader 清除为输入设备准备的缓冲
得到设备的ID Retrieving Device Identifier
waveInGetID 得到输入设备的ID
waveOutGetID 得到输出设备的ID
得到当前的位置 Retrieving the Current Position
waveInGetPosition 得到当前输入设备指针的位置
waveOutGetPosition 得到当前输出设备指针的位置
发消息给设备 Sending Custom Messages
waveInMessage 发一个消息给输入设备
waveOutMessage 发一个消息给输出设备
音量 Volume
waveOutGetVolume 得到输出设备当前的音量
waveOutSetVolume 设置输出设备的音量
=============================================
VB问答
问题部分:
您好!
1.我想 请 问 一 个 rdo连 接 串 的 问 题 :
服 务 器 名 为 jhserver,在 domain域 ,数据库 在
"\date\book\date\book.mdb",工 作 机 器 id是
tif4r4c1,密 码 无 ,在 class组 ,这 样一 个 rdo
调 用 ,如 果 用 dsn如 何 写 ,如 果 不 用 dsn,
用 driver如 何 写 ?他 们 之 间 有何 区 别 ?
2.如 果 使 用 dsn,则 我 在 自 己 工 作 机
器 上 做 的 程 序 ,拿 到 其 它 机 器 上是否能
正常使用 ,要 不 要 配 置 相 同 的 dsn?有 没 有
通 用 的 方 法 ,比 如 像 路 径 设 置 里 的
app.path一 样 ?
thank you very much
致 礼!
push
3.用API播放AVI时,怎样把播放窗口的标题栏去掉。
4.播放时,怎样实现全屏幕播放,即使原来的AVI尺
寸比屏幕大或小。希能赐教。
康新龙
回答部分:
=============================================
其 它
====================================================================
欢迎订阅VB免费邮件:
订阅地址 http://server.com/WebApps/mail-list-subscribe.cgi?id=16852
====================================================================
如果您觉得这个邮件列表好的话,请告诉您的朋友。
====================================================================
欢迎投稿 [email protected]
====================================================================
网易上的主页地址:http://www4.netease.com/~aaaaaaaaa
本网站主页镜像地址:goodvbhome.yeah.net
广东视灵通:http://personal.gz168.gnet.gd.cn/vbok/
====================================================================
-- ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.103.47.196]
|
|