Воспроизведение аудио при нажатии на кнопку - VB
Формулировка задачи:
Всем привет! Программирование начал осваивать недавно. Мне посоветовали начать с VisualBasic 6.0, а затем перейти к более сложным языкам типа С++. Скачал "Самоучитель для начинающих" С.Н. Лукиных, читаю и выполняю практические задачи.
Застрял на выполнении проекта калькулятор. Не могу сделать так, чтобы при нажатии на кнопку воспроизводился звук. Вроде все сделал так, как было написано в книге. Но безрезультатно! Вот коды процедур:
При нажатии на Кл_сложения должен открываться, звучать и закрываться файл Windows - восстановление.wav, воспроизводимый MMControl с именем Звук посредством WaveAudio.
Есть подозрение что вся беда в несовместимости ПО. У меня Windows 8, и при установке VisualBasic 6.0 произошла какая-то ошибка. Но сообщение об ошибке появилось уже в конце установки и программа работает.
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
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д