我使用在Windows下一個C++應用程序PlaySound
功能最小化。 當此應用程序運行本地var命令PlaySound
並且它開始播放WAV文件時。停止播放聲音和音量時應用
但是,當你點擊我的應用程序最小化對話框時,聲音會繼續播放,當邏輯規則必須被禁止或者靜音,直到你再次最大化應用。
的問題是:
有Windows中應用程序狀態的應用程序最小化時檢測? 爲了設置waveOutSetVolume
功能0x00 = mute
。
我使用在Windows下一個C++應用程序PlaySound
功能最小化。 當此應用程序運行本地var命令PlaySound
並且它開始播放WAV文件時。停止播放聲音和音量時應用
但是,當你點擊我的應用程序最小化對話框時,聲音會繼續播放,當邏輯規則必須被禁止或者靜音,直到你再次最大化應用。
的問題是:
有Windows中應用程序狀態的應用程序最小化時檢測? 爲了設置waveOutSetVolume
功能0x00 = mute
。
您的應用的窗口是否顯示WM_SYSCOMMAND
消息,並檢查SC_MINIMIZE
,SC_MAXIMIZE
和SC_RESTORE
通知。當應用程序窗口最小化或最大化
您的應用程序將收到一個WM_WINDOWPOSCHANGED消息。檢查lParam中的WINDOWPOS結構以確定新狀態。然後,您可以分別關閉或打開聲音。 (注意:當窗口移動,發送回來等等時,也會發送此消息。因此請檢查lParam。)
如果應用程序當前已最小化,則可以使用IsIconic進行檢查。
而且我並不覺得合乎邏輯的聲音具有應用程序最小化時停止播放。畢竟這是一個多任務操作系統。我希望它能夠並行地做事。
贏了+ d觸發WM_SYSCOMMAND? –
不,它沒有,因爲該功能並沒有真正減少應用程序窗口,它只是將桌面窗口帶到前臺。它,然而,觸發'WM_WINDOWPOSCHANGING','WM_GETMINMAXINFO','WM_NCCALCSIZE','WM_WINDOWPOSCHANGED','WM_MOVE','WM_SIZE','WM_STYLECHANGING'和'WM_STYLECHANGED'消息(如由間諜捕獲++)。 –