应用程序最小化时停止播放声音和音量

时间:2011-11-29 19:35:09

标签: c++ winapi audio

我在Windows下的一个C ++应用程序中使用PlaySound函数。 当此应用程序运行本地var命令PlaySound并且它开始播放WAV文件时。

但是,当您单击我的应用程序的最小化对话框时,声音将继续播放,此时逻辑规则必须静音或静音,直到您再次最大化应用程序。

问题是:

Windows中是否存在应用程序状态以检测应用程序何时最小化? 要将waveOutSetVolume函数设置为0x00 = mute

2 个答案:

答案 0 :(得分:1)

让应用的窗口抓住WM_SYSCOMMAND消息并检查SC_MINIMIZESC_MAXIMIZESC_RESTORE通知。

答案 1 :(得分:1)

当应用程序窗口最小化或最大化时,您的应用程序将收到WM_WINDOWPOSCHANGED消息。检查lParam中的WINDOWPOS结构以确定新状态。然后,您可以分别关闭或打开声音。 (注意:当窗口移动,发送回来等时也会发送此消息。因此请检查lParam。)

如果当前最小化应用程序,可以使用IsIconic检查。

我认为在应用程序最小化时声音必须停止播放是不合逻辑的。毕竟这是一个多任务操作系统。我希望它能并行完成。