Другие языки программирования и технологии
2 лёгких вопроса по VB 2008
1. Как сделать рамочки для кнопок т.к. при их покраске края всё равно остаются белыми , очень некрасиво. 2.Как сделать музыку ? Ну и какие основные команды для звуковых эффектов , типа вкл/выкл при каких либо условиях?
Звуковая подсистема (MCI) обеспечивает одновременное воспроизведение звуковых файлов, причем разных форматов (зависит от установленных в системе кодеков) .
Достаточно вызвать пару API функций.
Когда то писал игрушку, вот кусочек примерчика.. .
Надеюсь разберешься.
Public Class Form1
'*** Декларируем API функции ***
' Воспроизведение звука и музыки
Private Declare Function mciSendString Lib "winmm.dll" _
Alias "mciSendStringA" (ByVal lpstrCommand As String, _
ByVal lpstrReturnString As String, ByVal uRetrunLength _
As Long, ByVal hwndCallback As Long) As Long
' Преобразование длинного имени файла в короткое (8.3) имя.
Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" _
(ByVal lpszLongPath As String, ByVal lpszShortPath As String, _
ByVal cchBuffer As Integer) As Int32
' Загрузка формы
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Задаем каталог (звуки, курсор, музыка и проч... )
Dim Directory As String = Application.StartupPath & "\Sound\"
'Грузим звуки и музыку в MCI
FileName = ShortFilePath(Directory & "1.mid") ' фоновая музыка
mciSendString("open " & FileName & " alias Фон", "", 0, 0)
FileName = ShortFilePath(Directory & "CLICK.WAV") ' перзарядка патронов
mciSendString("open " & FileName & " alias Патроны", "", 0, 0)
FileName = ShortFilePath(Directory & "TimerTick.wav") ' нет патронов
mciSendString("open " & FileName & " alias Клик", "", 0, 0)
FileName = ShortFilePath(Directory & "exp1.wav") ' выстрел #1
mciSendString("open " & FileName & " alias Выстрел1", "", 0, 0)
' Воспроизводим фон
mciSendString("play Фон", "", 0, 0)
End Sub
' Перезарядка патронов
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Воспроизводим звук перезарядки патронов
mciSendString("play Патроны from 0", "", 0, 0)
End Sub
' Звук выстрела
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Воспроизводим звук выстрела
mciSendString("play Выстрел1 from 0", "", 0, 0)
End Sub
'* Функция преобразования пути к файлу (длинный в короткий)
Private Function ShortFilePath(ByVal strFilePath As String) As String
Dim ShortFileName As String = Space(256) ' буфер для короткого имени
Dim Result As Int32 = GetShortPathName(strFilePath, ShortFileName, Len(ShortFileName))
ShortFilePath = Microsoft.VisualBasic.Left(ShortFileName, Result)
End Function
End Class
Достаточно вызвать пару API функций.
Когда то писал игрушку, вот кусочек примерчика.. .
Надеюсь разберешься.
Public Class Form1
'*** Декларируем API функции ***
' Воспроизведение звука и музыки
Private Declare Function mciSendString Lib "winmm.dll" _
Alias "mciSendStringA" (ByVal lpstrCommand As String, _
ByVal lpstrReturnString As String, ByVal uRetrunLength _
As Long, ByVal hwndCallback As Long) As Long
' Преобразование длинного имени файла в короткое (8.3) имя.
Declare Function GetShortPathName Lib "kernel32" Alias "GetShortPathNameA" _
(ByVal lpszLongPath As String, ByVal lpszShortPath As String, _
ByVal cchBuffer As Integer) As Int32
' Загрузка формы
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
' Задаем каталог (звуки, курсор, музыка и проч... )
Dim Directory As String = Application.StartupPath & "\Sound\"
'Грузим звуки и музыку в MCI
FileName = ShortFilePath(Directory & "1.mid") ' фоновая музыка
mciSendString("open " & FileName & " alias Фон", "", 0, 0)
FileName = ShortFilePath(Directory & "CLICK.WAV") ' перзарядка патронов
mciSendString("open " & FileName & " alias Патроны", "", 0, 0)
FileName = ShortFilePath(Directory & "TimerTick.wav") ' нет патронов
mciSendString("open " & FileName & " alias Клик", "", 0, 0)
FileName = ShortFilePath(Directory & "exp1.wav") ' выстрел #1
mciSendString("open " & FileName & " alias Выстрел1", "", 0, 0)
' Воспроизводим фон
mciSendString("play Фон", "", 0, 0)
End Sub
' Перезарядка патронов
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Воспроизводим звук перезарядки патронов
mciSendString("play Патроны from 0", "", 0, 0)
End Sub
' Звук выстрела
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Воспроизводим звук выстрела
mciSendString("play Выстрел1 from 0", "", 0, 0)
End Sub
'* Функция преобразования пути к файлу (длинный в короткий)
Private Function ShortFilePath(ByVal strFilePath As String) As String
Dim ShortFileName As String = Space(256) ' буфер для короткого имени
Dim Result As Int32 = GetShortPathName(strFilePath, ShortFileName, Len(ShortFileName))
ShortFilePath = Microsoft.VisualBasic.Left(ShortFileName, Result)
End Function
End Class
Похожие вопросы
- Вопросы по VB.
- Вопрос про vb
- 2 простых вопроса про Delphi 7
- Visual basic Всем привет. Я знаю что на VB можно создать много чего. Вопрос такой. Что интересного вы создали на VB. ?
- records и ByVal в VB
- VB. Макросы в MS Exel.
- А лучше качать VB 6 версии или сразу VB 2010? И воообще, в чем разница то?)))
- Вводится последовательность чисел, 0 – конец последовательности. Найти два наибольших числа (VB) прошу помощи
- Для чего в VB используются функции Rnd и Randomize?
- Продаю программу с исходниками на Visual Basic 2008 за 50 руб.