mfc如何添加位图在MFC中添加音乐

君,已阅读到文档的结尾了呢~~
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
手把手教您用MFC做MP3音乐播放器
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口首先你的资源要是wav格式的而且要包括头文件和必须的库文件如下
#include &mmsystem.h&
#pragma comment( lib, &Winmm.lib&)
PlaySound函数的声明为:
BOOL PlaySound(LPCSTR pszSound, HMODULEhmod,DWORD fdwSound);
第一种方法是直接播出声音文件,相应的代码为:
PlaySound(&c:\\win95\\media\\TheMicrosoft Sound.wav&, NULL, SND_FILENAME | SND_ASYNC);
注意参数中的路径使用两个连续的反斜杠转义代表一个反斜杠。
第二种方法是把声音文件加入到资源中,然后从资源中播放声音。Visual C++支持WAVE型资源,用户在资源视图中单击鼠标右键并选择Import命令,然后在文件选择对话框中选择The Microsoft Sound.wav文件,则该文件就会被加入到WAVE资源中。假定声音资源的ID为IDR_STARTWIN,则下面的调用同样会输出启动声音:
PlaySound((LPCTSTR)IDR_STARTWIN,AfxGetInstanceHandle(), SND_RESOURCE | SND_ASYNC);
第三种方法是用PlaySound播放系统声音,Windows启动的声音是由SystemStart定义的系统声音,因此可以用下面的方法播放启动声音:
PlaySound(&SystemStart&,NULL,SND_ALIAS|SND_ASYNC);
函数sndPlaySound的功能与PlaySound类似,但少了一个参数。函数的声明为:
BOOL sndPlaySound(LPCSTR lpszSound, UINTfuSound);
除了不能指定资源名字外,参数lpszSound与PlaySound的是一样的。参数fuSound是如何播放声音的标志,可以是SND_ASYNC、SND_LOOP、SND_MEMORY、SND_NODEFAULT、SND_NOSTOP和SND_SYNC的组合,这些标志的含义与PlaySound的一样。
第四种方法:
sndPlaySound不能直接播放声音资源。要用该函数播放WAVE文件,可按下面的方式调用:
sndPlaySound(“MYSOUND.WAV”,SND_ASYNC);
自己把资源添在Debug文件夹里。
以前编程积累的资料,贴过来参考; (1)把声音文件加入到资源中,然后从资源中播放声音 : PlaySound((LPCTSTR)IDR_STARTWIN,AfxGetInstanceHandle(),SND_RESOURCE | SND_ASYNC); 第三个参数的含义: SND_APPLICATION 用应用程序指定的关联来播放声音。 SND_ALIAS pszSound参数指定了注册表或WIN.INI中的系统事件的别名。 SND_ALIAS_ID pszSound参数指定了预定义的声音标识符。 SND_ASYNC
用异步方式播放声音,PlaySound函数在开始播放后立即返回。 SND_FILENAME pszSound参数指定了WAVE文件名。 SND_LOOP 重复播放声音,必须与SND_ASYNC标志一块使用。 SND_MEMORY 播放载入到内存中的声音,此时pszSound是指向声音数据的指针。 SND_NODEFAULT 不播放缺省声音,若无此标志,则PlaySound在没找到声音时会播放缺省声音。 SND_NOSTOP PlaySound不打断原来的声音播出并立即返回FALSE。 SND_NOWAIT
如果驱动程序正忙则函数就不播放声音并立即返回。 SND_PURGE 停止所有与调用任务有关的声音。若参数pszSound为NULL,就停止所有的声音,否则,停止pszSound指定的声音。 SND_RESOURCE pszSound参数是WAVE资源的标识符,这时要用到hmod参数。 SND_SYNC 同步播放声音,在播放完后PlaySound函数才返回。 注:需包含头文件&mmsystem.h&,还可能需要添加winmm.lib(Project -& Setting 选择 Link 标签 找到 Object/Library
Modules 然后输入 winmm.lib就可以了,如果要连接的库比较多,用空格分开就可以了(也可以加#pragma comment( lib ,&winmm.lib& ) 代替添加winmm.lib)。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:5702次
排名:千里之外
转载:16篇
(1)(1)(1)(3)(4)(7)(1)2291人阅读
步骤如下:
1 导入音乐文件,其中音乐的格式为wav
2 加入头文件
//PlaySound
#include &windows.h&
#include &mmsystem.h&
#pragma comment(lib, &WINMM.LIB&)
3 添加播放音乐的函数
//play music
&PlaySound(MAKEINTRESOURCE(IDR_WAVE1),NULL,SND_RESOURCE|SND_LOOP|SND_ASYNC);/*注意播放的音乐文件*/
///////////////////////////////////////补充部分
#include &stdafx.h&
#include &mmsystem.h&
int APIENTRY WinMain(HINSTANCE hInstance,
&&&&&&&&&&&&&&&&&&&& HINSTANCE hPrevInstance,
&&&&&&&&&&&&&&&&&&&& LPSTR&&&& lpCmdLine,
&&&&&&&&&&&&&&&&&&&& int&&&&&& nCmdShow)
&& // TODO: Place code here.
&&& PlaySound(TEXT(&C:);
MessageBox(NULL , TEXT(&你是笨蛋&) ,TEXT(&测试&) ,MB_OK|MB_OKCANCEL);
// SendMessage(HWND_BROADCAST,&& WM_SYSCOMMAND,&& SC_MONITORPOWER,&& 2);&
&&& //关闭显示器
播放声音文件
(1)用途:游戏里播放音乐;自己动手给女友做音乐贺卡(图片、滚动的字母、温馨的音乐)
(2)可以使用PlaySound()函数播放声音文件,该函数原型位于#include
&mmsystem.h&中,&因此要使用PlaySound,首先需要添加对这个头文件的引用。
提示:mm就是MultiMedia的简写,多媒体
(3)函数原型为:&BOOL PlaySound(LPCSTR pszSound,
HMODULE hmod,DWORD fdwSound);&
返回值表示是否播放成功。
参数pszSound是要播放声音的文件名,只支持WAV等格式的文件;去用“wav”为关键词可以搜到很多wav音乐,也可以用工具将其他格式的转换为wav格式的。
参数hmod是应用程序的实例句柄,一般传递NULL就可以;
参数fdwSound是标志的组合掩码,可选值有SND_FILENAME、SND_ASYNC、SND_SYNC等。SND_FILENAME表示pszSound参数指定的是文件名(pszSound还可以指定资源、内存音乐、系统音乐等等);SND_ASYNC:用异步方式播放声音,PlaySound函数在开始播放后立即返回;SND_SYNC:同步播放声音,在播放完后PlaySound函数才返回;SND_LOOP一遍遍的重复播放声音,必须与SND_ASYNC标志一块使用。
(4)使用举例:
PlaySound(TEXT(&C:&XP&启动.wav&),NULL,SND_FILENAME|SND_SYNC);
注意的问题:文件名中的反斜线要用“\\”,因为C语言中“\”默认是转义符,如果要表示“\”则需要使用“\\”,对这点不明白的请回去翻一下C语言的书;对中文字符串要使用TEXT宏。
(5)为啥构建不通过?
#include &mmsystem.h&只是保证编译通过,还要设定link。
解决方案:工程上点击右键,选“工程设置”,连接,添加“winmm”库。
解决此问题时参考的文章:,但是记住“一通百通”这个道理,C-Free中添加Link库的方式和VC非常相似,只是操作步骤不同而已。
附录:VC中添加Link库的方式:
project-&setting-&Link&下的&Object/library modules&里加入winmm.lib即可”,他这里用的是英文版,中文版应该是主菜单的【工程】→【设置】→【连接】,将“winmm.lib”加入到“对象/库模块”中。
(6)接上面的问题:关于link库
一个程序由源代码变成exe文件有两步:编译Compile;连接Link。编译是把c文件编译成.o、.obj文件,而连接则是把这些.o、.obj、.lib等文件连接到一起成为exe文件。这点不清楚的请回去查看C语言的教材。
那什么是*.lib文件呢?大家以前用TC开发程序的时候用的都是C语言内置的函数,所以不存在使用非内置函数的情况。但是在开发大程序的时候要大量用到非内置的函数,比如PlaySound、MessageBox等等。在使用这些函数的时候需要使用两部分,一部分是*.h头文件,它定义了函数的参数和返回值,另一部分是*.lib文件,是用来进行程序链接用的。C程序的构建分为编译(Compile)和连接(Link)两个过程,Compile是把源代码编译成*.obj文件,每个源码文件都对应一个*.obj文件,而连接则是把这些*.obj文件以及使用到的非内置函数的*.lib文件连接成一个*.exe文件。所以无论是忘了include
*.h文件,还是丢了*.lib文件,都会构建出错。从上面的报错信息可以看出来是Compile成功,但是Link失败。一定要记得C程序编译的这两个过程,面试、笔试的时候常考。
(7)同步播放音乐
PlaySound(&C:&XP&关机.wav&,NULL,SND_FILENAME|SND_SYNC);
(8)体会同步播放和异步播放的差异:
PlaySound(&C:&XP&关机.wav&,NULL,SND_FILENAME|SND_SYNC);
MessageBox(NULL,&同步播放完毕&,&信息&,MB_OK);
PlaySound(&C:&XP&关机.wav&,NULL,SND_FILENAME|SND_ASYNC);
MessageBox(NULL,&异步播放立即返回&,&信息&,MB_OK);
&& &&&同步模式:音乐播放过程中函数不返回,播放完成才返回
&& &&&异步播放在做游戏等需要播放时间较长的音乐时使用,因为程序不会在音乐播放过程中有假死的情况。
有没有同学注意到第二个对话框如果快速关闭的话音乐会中途停止?这是因为程序退出音乐就中断播放了。用户关了游戏,音乐也不能继续播放,应该停止,所以很合理
(9)我可以做一个小程序,别人在我小程序运行的时候一直听播放的音乐,用异步方式可以保证音乐在后台播放。可以只能播放一遍,能不能音乐来回来去的不断播放呢?答案是使用SND_LOOP标志。
Loop:循环
PlaySound(&C:&XP&关机.wav&,
NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);
(10)如果我做一个小游戏,那么希望向上边那样不断播放,可以到达一个关卡的时候希望停止原来的音乐怎么办?
PlaySound(TEXT(&C:&XP&启动.wav&),NULL,SND_FILENAME|SND_ASYNC);
MessageBox(NULL,TEXT(&&),TEXT(&&),MB_OK);
PlaySound(TEXT(&C:&XP&关机.wav&),NULL,SND_FILENAME|SND_ASYNC);
MessageBox(NULL,TEXT(&&),TEXT(&&),MB_OK);
只能同时播放一段音乐,启动新的、旧的就被停了
(11)如果只是想停止目前的播放而不播放新音乐呢?
&& &&&只要给PlaySound的第一参数传递NULL就可以停止目前的播放了。
PlaySound(&C:&XP&关机.wav&,
NULL,SND_FILENAME|SND_ASYNC|SND_LOOP);
MessageBox(NULL,&点确定终止音乐&,&信息&,MB_OK);
PlaySound(NULL,NULL,SND_FILENAME);
MessageBox(NULL,&音乐被终止&,&信息&,MB_OK);
//VC中的UpdateData 的作用
当调用UpdataData (TRUE)的时候,程序会对控件对应的变量值进行刷新,也就是说会把控件中的输入值赋给对应的变量。而调用UpdataData (FALSE)的时候,程序则会把相应变量的值显示在对应的控件上面。
//时间函数
int OpenGL::getTime(int seconds)
&endwait = clock () + seconds * CLK_TCK ;
&while (clock() & endwait)
&return 0;
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1292504次
积分:16198
积分:16198
排名:第484名
原创:541篇
转载:179篇
评论:128条
(1)(1)(1)(1)(4)(1)(1)(1)(1)(2)(3)(2)(1)(3)(2)(8)(16)(10)(13)(2)(11)(17)(3)(17)(16)(5)(1)(6)(38)(31)(14)(10)(17)(15)(22)(14)(30)(57)(41)(91)(83)(18)(7)(20)(5)(52)(2)(4)}

我要回帖

更多关于 mfc如何添加位图 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信