C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  01.05.2010 — Update World C++: Сборник GPL QT исходников
  15.12.2007 — Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Хостинг:
Windows 2003, ASP.NET 2.0
бесплатный и от 80 руб./мес


   Отправить письмо
Кулабухов Артем, Беларусь




 148 - WAV файлы в ресурсах / MFC шаг за шагом / Visual C++

Шаг 148 - WAV файлы в ресурсах

  по мотивам материалов присланных

  ---Исходное сообщение-----
  От: Oleg 
  Кому: kaev@yandex.ru
  Дата: 8 марта 2000 г. 20:40
  Тема: MFCByStep
  Проигрывание Wave-файла в виде ресурса
  ..........................
  -------------------------
  К сожалению материал был взят с какого то сайта
  и его пришлось переработать.
Итак, задача следующая. Вы хотите создать программу, которая будет снабжена звуковым сопровождением. Вы решили использовать WAV файлы. У Вас есть два варианта, первый это хранить звуковые файлы отдельно, скажем в виде файлов. Это плохо, так как их могут стереть или испортить. Наиболее разумно поместить их внутри ресурсов.

Создаем приложение, как MFC AppWizard на базе диалогового окна. На окно помещаем кнопку для проигрывания файла. Имя проекта TestWav. Давайте поместим звуковой файл в ресурсы. Выбираем пункт меню Insert -> Resource. На появившемся окне есть кнопка Import. Нажмите её и у вас появится диалоговое окно выбора файла для импорта. В окне типа файлов надо выбрать WAV и найти файлы, например, в папке Windows\Media.

Посмотрите вкладку Resource, вы увидите папочку WAVE. Там и будет наш ресурс. Теперь код для кнопки, пока он такой:

void CTestWavDlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
}
Итак, первое нам необходимо объявить заголовочный файл с функциями проигрывания WAV файлов
// TestWavDlg.cpp : implementation file
//
.......
#include "TestWavDlg.h"
#include "mmsystem.h"
.......
Незабудьте в Project Setting добавить winmm.lib. Ну, а теперь код.
void CTestWavDlg::OnButton1() 
{
	HRSRC hWav;
	hWav=FindResource(AfxGetResourceHandle(),MAKEINTRESOURCE(IDR_WAVE1),"WAVE");
	if (hWav!=NULL)
	{
           HGLOBAL hPtrDataWav;
	   hPtrDataWav=LoadResource(AfxGetResourceHandle(), hWav);
	   if (hPtrDataWav!=NULL)
	   {
	   LockResource(hPtrDataWav);
           sndPlaySound((LPCTSTR)hPtrDataWav,SND_MEMORY|SND_ASYNC );
           FreeResource(hPtrDataWav);
	   }
	   else AfxMessageBox(" Not Load");
	}
	else AfxMessageBox("Not Resource");
}

Вот так это делается. Ищем ресурс, дальше читаем ресурс, блокируем его, а потом проигрываем как уже рассказывалось и разблокируем.

Поместить можно в файл ресурсов всё, что угодно и в последствии использовать !!!


| |
Автор Каев Артем.
[AD]