2011-04-29 156 views
1

如何在win32中實現自動隱藏功能?我在我的應用程序中有一個菜單,我可以用SetMenu(hwndDlg, NULL)隱藏,然後我可以使用SetMenu(hwndDlg, hMenu)重新啓用它。但是,我想模仿很多現代應用程序(例如IE9)的行爲,其中隱藏菜單直到您按Alt。然後,當主窗口變得聚焦時,菜單再次消失。有沒有一個標準的API來做到這一點?或者我可以檢查焦點和Alt鍵。Win32 - 自動隱藏菜單

經過對Spy ++的一些調查後,我能夠顯示用SC_KEYMENU處理WM_SYSCOMMAND的菜單,但仍然不確定要處理哪些消息以使菜單消失。

回答

1

所以你只是想知道當用戶完成菜單,所以你可以再次隱藏它?

如果是這樣,請嘗試WM_EXITMENULOOP消息。

顯然,應用程序爲常規應用程序菜單,系統菜單和任何'TrackPopupMenu'菜單獲取WM_ENTER/EXITMENULOOP,所以當常規菜單已被隱藏時(例如,如果用戶訪問和解散系統菜單)。