程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> VC >> vc教程 >> 在VC資源文件中加入聲音資源

在VC資源文件中加入聲音資源

編輯:vc教程

  本文介紹如何在VC資源文件中加入自己的聲音資源,使自己的應用程序可以播放聲音。

  1、首先用文本編輯器(如記事本)打開資源文件(.rc文件)

  在最後加入自己的聲音資源,如下IDW WAVE "c:\kav\sound\virus.wav"

  保存資源文件。
  2、在應用程序中要播放聲音的地方啟動另一線程,用來播放聲音:

AfxBeginThread((AFX_THREADPROC)sound,NULL,THREAD_PRIORITY_NORMAL);
  3、添加線程回調函數

  這裡介紹加載資源的方法。首先用函數AfxGetInstanceHandle()獲得實例的句柄,其次用函數FindResource找到自己的聲音資源。

HRSRC FindResource(
 HMODULE hModule, // module handle
 LPCTSTR lpName, // resource name
 LPCTSTR lpType // resource type
)
  找到聲音資源後,要用LoadResource加入該資源

HGLOBAL LoadResource(
 HMODULE hModule, // module handle
 HRSRC hResInfo // resource handle
);
  最後鎖定資源內存塊,並返回所標定內存塊的虛擬內存地址。如果該資源被成功鎖定的話,則返回值指向該資源開始處的第一個字節:

LPVOID pv=LockResource()
  注意:若上述四步中的任何一步發生問題,則返回並釋放相應的內存。接下去要做的事情就是根據文件數據類型進行數據加載。

UINT CPlaySoundVIEw::sound(LPVOID pParam)
{
 HINSTANCE h=AfxGetInstanceHandle();
 HRSRC hr=FindResource(h,"IDW","WAVE");
 HGLOBAL hg=LoadResource(h,hr);
 LPSTR lp=(LPSTR)LockResource(hg);
 sndPlaySound(lp,SND_MEMORY|SND_SYNC);
 FreeResource(hg);
 return 0;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved