WEB开发网
开发学院软件开发VC Web 版本检查以及为应用程序添加声音效果 阅读

Web 版本检查以及为应用程序添加声音效果

 2007-03-17 22:00:40 来源:WEB开发网   
核心提示: AppExit WAVE "res\STExit.wav"注意资源必须是一个 WAVE 文件——这个重要的细节到目前为止微软没有在文档中说明,资源编译器会将WAV文件嵌入EXE可执行文件,Web 版本检查以及为应用程序添加声音效果(5),这样你就
AppExit WAVE "res\STExit.wav"

注意资源必须是一个 WAVE 文件——这个重要的细节到目前为止微软没有在文档中说明。资源编译器会将WAV文件嵌入EXE可执行文件,这样你就可以像下面这样用 SND_RESOURCE 标志播放它了:

PlaySound("AppExit", AfxGetResourceHandle(), SND_RESOURCE);

PlaySound 需要包含资源的模块句柄,这个模块句柄可以通过调用 AfxGetResourceHandle (在大多数应用程序中,它获得的结果与 AfxGetInstanceHandle 相同)来获得。在前面的代码段中,资源标示符是一个字符串(“AppExit”),但如果你指定了 SND_ALIAS_ID 标志,也可以用一个整数 ID。

为了简化开发,我写了一个类:CSoundMgr,用这个类可以很容易在程序实现声音效果。CSoundMgr 可以让你定义逻辑声音并通过 ID 来播放。该类具备注册声音的函数,通过修改一个标志便可以让你的程序骤然间打破沉默。CSoundManager 甚至可以在你的资源文件中搜索默认的声音。为了示范该类的使用方法,我写了一个测试程序——SoundTest。它是一个典型的 MFC 基于对话框的程序。如 Figure 5 所示,程序运行画面中显示了应用程序当前的五个声音值。

Figure 5 SoundTest

SoundTest 定义声音的第一步是创建声音的 IDs。我用了一个枚举类型来处理五个声音:MYSND_HAPPY,MYSND_UNHAPPY 等等。注意不要使用 0 作为声音的 ID;因为 CSoundMgr::PlaySound(0) 停止播放当前的声音,作用相当于 ::PlaySound(NULL, NULL, 0)。定义了 IDs 之后,你便可以使用在 SoundMgr.h 文件中定义宏来建立声音映射表,就像下面这样:

上一页  1 2 3 4 5 6 7  下一页

Tags:Web 检查

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接