Воспроизведение аудио при нажатии на кнопку - 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы