Воспроизведение аудио при нажатии на кнопку - VB
Формулировка задачи:
Всем привет! Программирование начал осваивать недавно. Мне посоветовали начать с VisualBasic 6.0, а затем перейти к более сложным языкам типа С++. Скачал "Самоучитель для начинающих" С.Н. Лукиных, читаю и выполняю практические задачи.
Застрял на выполнении проекта калькулятор. Не могу сделать так, чтобы при нажатии на кнопку воспроизводился звук. Вроде все сделал так, как было написано в книге. Но безрезультатно! Вот коды процедур:
При нажатии на Кл_сложения должен открываться, звучать и закрываться файл Windows - восстановление.wav, воспроизводимый MMControl с именем Звук посредством WaveAudio.
Есть подозрение что вся беда в несовместимости ПО. У меня Windows 8, и при установке VisualBasic 6.0 произошла какая-то ошибка. Но сообщение об ошибке появилось уже в конце установки и программа работает.
Листинг программы
- Private Sub Form_Load()
- Звук.DeviceType = "WaveAudio"
- Плеер.DeviceType = "Sequencer"
- Плеер.FileName = "C:\Windows\Media\onestop.mid"
- Плеер.Command = "Open"
- Плеер.Command = "Play"
- End Sub
- Private Sub Кл_сложения_Click()
- Звук.FileName = "C:\Windows\Media\Windows - восстановление.wav"
- Звук.Command = "Open"
- Звук.Command = "Sound"
- Звук.Command = "Close"
- Результат.Text = Val(Число1.Text) + Val(Число2.Text)
- End Sub
null
Всем заранее спасибо за внимание, ответы и рекомендации! Решение задачи: «Воспроизведение аудио при нажатии на кнопку»
textual
Листинг программы
- Option Explicit
- Private Declare Function UpdateLayeredWindow Lib "user32.dll" (ByVal hwnd As Long, ByVal hdcDst As Long, pptDst As Any, psize As Any, ByVal hdcSrc As Long, pptSrc As Any, ByVal crKey As Long, pblend As Long, ByVal dwFlags As Long) As Long
- Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
- Private Declare Function GetWindowLong Lib "user32.dll" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
- Private Const WS_EX_LAYERED = &H80000
- Private Const GWL_EXSTYLE As Long = -20
- Private Const ULW_ALPHA = &H2
- Private Const AB_32Bpp255 = 33488896
- Dim Frame(20) As StdPicture
- Private Sub Form_Load()
- Dim i As Long
- For i = 0 To 20
- Set Frame(i) = LoadPicture(App.Path & "\" & Format(i, "Fr0000\.bmp"))
- Next
- SetWindowLong Me.hwnd, GWL_EXSTYLE, GetWindowLong(Me.hwnd, GWL_EXSTYLE) Or WS_EX_LAYERED
- End Sub
- Private Sub tmrTimer_Timer()
- Static fr As Long, sz As Currency, pt As Currency
- Me.Picture = Frame(fr)
- sz = (Me.ScaleWidth + CCur(Me.ScaleHeight) * 4294967296#) / 10000
- UpdateLayeredWindow Me.hwnd, Me.hDC, pt, sz, Me.hDC, pt, 0, AB_32Bpp255, ULW_ALPHA
- fr = (fr + 1) Mod (UBound(Frame) + 1)
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д