在VC资源文件中加入声音资源
2014-05-02 00:18
417 查看
本文介绍如何在VC资源文件中加入自己的声音资源,使自己的应用程序可以播放声音。
1、首先用文本编辑器(如记事本)打开资源文件(.rc文件)
在最后加入自己的声音资源,如下IDW WAVE "c:\\kav\\sound\\virus.wav"
保存资源文件。
2、在应用程序中要播放声音的地方启动另一线程,用来播放声音:
3、添加线程回调函数
这里介绍加载资源的方法。首先用函数AfxGetInstanceHandle()获得实例的句柄,其次用函数FindResource找到自己的声音资源。
找到声音资源后,要用LoadResource加入该资源
最后锁定资源内存块,并返回所标定内存块的虚拟内存地址。如果该资源被成功锁定的话,则返回值指向该资源开始处的第一个字节:
注意:若上述四步中的任何一步发生问题,则返回并释放相应的内存。接下去要做的事情就是根据文件数据类型进行数据加载。
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; }
相关文章推荐
- C++ primer读书笔记(1)
- ios 动画中如何正确响应button的各种事件
- VC++实现位图显示透明效果--实现原理
- 事务管理(二) JDBC事务管理简单实现
- 练习写C++代码(11)--实现简单的时钟类3
- [Redis]windows下redis安装
- linux下源码搭建php环境之mysql(一)
- google glog分析2
- Could not find Class "...\DaoMaster" referenced form method "...\onCreate
- 谓词逻辑
- 三维重建相关参考链接
- LA6276 - Key Insight vector 数组计数
- c++多文件使用全局变量的方法
- POJ3278 Catch That Cow(BFS入门)
- 用VC制作应用程序启动画面
- 下载hibenate tools插件(百度搜hibenate tools 下载)
- cookie 和session 的区别详解
- java finalize的一些问题
- VC++的菜单控制和自绘菜单
- BZOJ 1426 收集邮票