Web 版本检查以及为应用程序添加声音效果
2007-03-17 22:00:40 来源:WEB开发网CSoundMgr::m_bUseResourceSounds = FALSE;
CSoundMgr 的实现很简单。大多数代码都是在处理注册表的存取,它也许是 Windows 编程中最繁琐的事情之一了(具体细节参见 Figure 6)。好在我把很多繁琐的工作都完成了。每个逻辑声音的子键位于 HKCUAppEventsSchemesAppsprogname,此处 progname 是你的程序名,这个名字与程序“Settings”中使用的字符串名相同,也就是::AfxGetAppName 返回的值。 每个子键在 .current 中保存声音文件名。CSoundMgr 并不创建这个.current,它只建立空键,因为当用户改变声音时,控制面板中的声音配置程序创建 .current。每个逻辑声音键的缺省值是声音人类可读的 GUI 名,但据我所知 Windows 忽略这个值;它在一个别的键中查找 GUI 名:HKCUAppEventsEventNames。详情请见代码说明。
所以你得为每个逻辑声音名创建另外一组键,其缺省值是人类可读的 GUI 名。当然,如果你使用 CSoundMgr,就可以不用考虑这些注册表键。只要定义你的声音并调用 CSoundMgr::Register 即可。如果用户已经定义了声音,调用 Register 还不能生效,仅仅是创建那些还不存在的键。如果你想实现一个重置命令将声音恢复到其默认值,你应该删除 HKCUAppEventsSchemesAppsprogname,然后再次调用 Register。
最后是一个小小的建议:在选择你的逻辑名称时,要小心避免与其它应用程序冲突。糟糕的是所有事件名在 HKCUAppEventsEventNames 里的相同名字空间中,所以我建议使用前缀,就像我在例子 SoundTest 中所做的那样,逻辑名都以 ST_开始。这样也很容易找到,因为 REGEDT32 是按照字母顺序列出键名的。
SoundTest 有一个启用/屏蔽声音的复选框,用户可以用它关闭声音。这个按钮关联的命令处理例程与变量 CSoundMgr::m_bEnableSounds 绑定。具体细节参见代码。
编程愉快!
- ››web安全之信息刺探防范1
- ››webqq 最新加密算法
- ››webdriver 数据库验证方法
- ››检查网络是3G WIFI或WAP
- ››WebSphere Application Server 7.0 XML Feature P...
- ››Web2.0网络时代基于社会影响力的声望值
- ››Web服务器搭建:配置Linux+Apache+Mysql+PHP(或Pe...
- ››本地行业网站细分化将网站做强
- ››WebLogic调整Java虚拟机性能优化参数
- ››webqq2.0协议研究(3)-ClientId生成
- ››Web.config配置文件
- ››WebBrowser组件的execWB方法——Delphi控制浏览器...
更多精彩
赞助商链接