如何在VB6中的PlaySound函数语句中声明多个标志?
我正在写一个VB6程序,需要一些关于PlaySound函数声明语法的帮助。我已经编写了附带的代码片段,它成功地播放了如何在VB6中的PlaySound函数语句中声明多个标志?,vb6,flags,Vb6,Flags,我正在写一个VB6程序,需要一些关于PlaySound函数声明语法的帮助。我已经编写了附带的代码片段,它成功地播放了Tada.wav,但没有反映所有的标志 我可以有多个dwFlag,还是仅限一个 我希望dwFlags包括SND_ASYNC、SND_FILENAME和SND_LOOP 以下是我迄今为止尝试过的代码: Dim RetVal As Variant Private Const SND_ASYNC As Long = &H80 Private Const SND_FILE
Tada.wav
,但没有反映所有的标志
我可以有多个dwFlag
,还是仅限一个
我希望dwFlags包括SND_ASYNC
、SND_FILENAME
和SND_LOOP
以下是我迄今为止尝试过的代码:
Dim RetVal As Variant
Private Const SND_ASYNC As Long = &H80
Private Const SND_FILENAME As Long = &H20000
Private Const SND_LOOP As Long = &H8
Private Declare Function PlaySound Lib "winmm.dll" Alias _
"PlaySoundA" (ByVal lpszName As String, ByVal hModule As Long, _
ByVal dwFlags As Long) As Long
Private Sub Command3_Click()
RetVal = PlaySound("C:\Program Files\@VickEdu\Vocab!\Tada.wav",_
0&,_
SND_FILENAME Or SND_ASYNC Or SND_LOOP)
End Sub
Private Sub Command4_Click()
RetVal = PlaySound("C:\Program Files\@VickEdu\Vocab!\Tada.wav",_
0&, _
SND_FILENAME & SND_ASYNC & SND_LOOP)
End Sub
在
命令3
处理程序中执行此操作的方式是正确的(使用或)
您的问题是为SND\u ASYNC
定义了错误的值。更改:
Private Const SND_ASYNC As Long = &H80
致:
非常感谢你的慷慨回应。在阅读了你的评论之后,我在下面的链接中遇到了一些关于我的问题的补充信息
声明说:“Playsound唯一的“抓到”是创建dwFlag。可能会添加太多标志,这将导致溢出错误。”
然后,它继续对可用标志的含义进行了有益的讨论。您是否无法使用我的答案使其正常工作?我做了一个测试,并且能够成功地组合您正在使用的三个标志(file/loop/asnyc)。
Private Const SND_ASYNC As Long = &H1