#winapi #animation #menu
#winapi #Анимация #меню
Вопрос:
Как реализовано автозапуск в win32? У меня в приложении есть меню, которое я могу скрыть с помощью SetMenu( hwndDlg, NULL )
и я могу повторно включить его с помощью SetMenu( hwndDlg, hMenu )
однако я хочу имитировать поведение многих современных приложений (например, IE9), где меню скрыто, пока вы не нажмете Alt. Затем, когда главное окно становится сфокусированным, меню снова исчезает. Существует ли стандартный API для этого? В качестве альтернативы я мог бы проверить наличие кнопки фокусировки и Alt.
После некоторого исследования с помощью Spy я могу показать меню при обработке WM_SYSCOMMAND с помощью SC_KEYMENU, но все еще не уверен, какое сообщение обработать, чтобы меню исчезло.
Ответ №1:
То есть вы просто хотите знать, когда пользователь закончит работу с меню, чтобы вы могли снова его скрыть?
Если это так, попробуйте сообщение WM_EXITMENULOOP.
По-видимому, приложение получает WM_ENTER / EXITMENULOOP как для обычного меню приложения, так и для системного меню и для любого меню «TrackPopupMenu», поэтому вы можете получить это, когда обычное меню уже скрыто (например. если пользователь получает доступ к системному меню и закрывает его).).