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

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

 2007-03-17 22:00:40 来源:WEB开发网   
核心提示: BEGIN_SOUND_MAP(MySounds)DEFINE_SOUND(MYSND_HAPPY, _T("ST_Happy"), _T("SoundTest Happy"))...END_SOUND_MAP()表的每一行都有三项:ID,逻辑名和
BEGIN_SOUND_MAP(MySounds)
DEFINE_SOUND(MYSND_HAPPY, _T("ST_Happy"), _T("SoundTest Happy"))
...
END_SOUND_MAP()

表的每一行都有三项:ID,逻辑名和 GUI界面名。ID 用于播放声音,逻辑名(例如:ST_Happy)给注册表键值以及默认的声音资源内部使用。GUI界面名是显示在用户界面上给用户看的,当用户使用控制面板中的声音配置小程序时,用户看到的就是 GUI界面名——例如,Figure 4 中显示的“SoundTest Happy”。表一旦定义好,下一步是创建一个 CSoundMgr 实例,用这个表的值来初始化这个实例:

// 该程序的声音管理器
CSoundMgr SoundMgr(MySounds);

整个程序只需要一个 CSoundMgr 即可。最后,如果你想将默认的声音内嵌在程序中,那么你必须添加相应的 WAVE 资源,每个逻辑声音名对应一个 WAVE 文件。例如:

ST_HAPPY WAVE "res\STHappy.wav"
ST_UNHAPPY WAVE "res\STUnhappy.wav"

现在声音都定义好了,要播放声音只需用下面的方法即可:

SoundMgr.PlaySound(MYSND_HAPPY)

此处程序播放声音 MYSND_HAPPY。大概过程是这样的恶:CSoundMgr 首先查找注册表键/值,CSoundMgr::PlaySound 播放

HKCUAppEventsSchemesAppsSoundTestST_Happy.current

如果这个键/值不存在,你可以调用 CSoundMgr::IsRegistered 检查你的声音是否被注册过——如果没有,调用 CSoundMgr::Register 注册它们:

if (!SoundMgr.IsRegistered())
SoundMgr.Register();

CSoundMgr::Register 创建所有需要的注册键,以便用户在控制面板中定制声音。此时它实际上不需要给注册键任何赋值,让它们为空,以便 CSoundMgr::PlaySound 使用默认的声音资源。如果你不想使用默认的声音,那就不要为它们创建资源或者用下面的方法屏蔽:

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

Tags:Web 检查

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