我在Windows下的一个C ++应用程序中使用PlaySound
函数。
当此应用程序运行本地var命令PlaySound
并且它开始播放WAV文件时。
但是,当您单击我的应用程序的最小化对话框时,声音将继续播放,此时逻辑规则必须静音或静音,直到您再次最大化应用程序。
问题是:
Windows中是否存在应用程序状态以检测应用程序何时最小化?
要将waveOutSetVolume
函数设置为0x00 = mute
。
答案 0 :(得分:1)
让应用的窗口抓住WM_SYSCOMMAND
消息并检查SC_MINIMIZE
,SC_MAXIMIZE
和SC_RESTORE
通知。
答案 1 :(得分:1)
当应用程序窗口最小化或最大化时,您的应用程序将收到WM_WINDOWPOSCHANGED消息。检查lParam中的WINDOWPOS结构以确定新状态。然后,您可以分别关闭或打开声音。 (注意:当窗口移动,发送回来等时也会发送此消息。因此请检查lParam。)
如果当前最小化应用程序,可以使用IsIconic检查。
我认为在应用程序最小化时声音必须停止播放是不合逻辑的。毕竟这是一个多任务操作系统。我希望它能并行完成。