Win32 - Автоскрытие Меню - PullRequest
       0

Win32 - Автоскрытие Меню

1 голос
/ 29 апреля 2011

Как реализовано автоматическое скрытие в win32?У меня есть приложение в моем приложении, которое я могу скрыть с помощью SetMenu( hwndDlg, NULL ), и я могу повторно включить его с помощью SetMenu( hwndDlg, hMenu ), однако я хочу имитировать поведение многих современных приложений (например, IE9), где меню скрыто, пока вы не нажметечередующийсяЗатем, когда основное окно становится сфокусированным, меню снова исчезает.Есть ли стандартный API для этого?В качестве альтернативы я мог бы проверить фокус и кнопку Alt.

После некоторых исследований в Spy ++ я могу показать меню обработки WM_SYSCOMMAND с помощью SC_KEYMENU, но все еще не уверен, какое сообщение обрабатывать, чтобы меню исчезло.

1 Ответ

1 голос
/ 30 января 2012

То есть вы просто хотите узнать, когда пользователь завершит работу с меню, чтобы вы могли снова его скрыть?

Если это так, попробуйте сообщение WM_EXITMENULOOP .

Очевидно, что приложение получает WM_ENTER / EXITMENULOOP как для обычного меню приложения, системного меню, так и для любых меню «TrackPopupMenu», так что вы можете получить его, когда обычное меню уже скрыто (например, если пользователь получает доступ и закрывает системное меню).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...