У меня есть приложение с контекстным меню.Я использую метод OnMenuSelect, но он вызывается, когда мышь находится над элементом меню, а не когда я щелкаю по нему.Есть ли способ решить эту проблему?
OnMenuSelect
Да, это по замыслу.Метод OnMenuSelect соответствует сообщению WM_MENUSELECT , которое отправляется при наведении курсора мыши на элемент меню.
WM_MENUSELECT
Для обработки события щелчка дляпункт меню, вам нужно обработать WM_COMMAND сообщение , которое
WM_COMMAND
Отправляется, когда пользователь выбирает пункт команды из меню , когдаэлемент управления отправляет уведомление в родительское окно или при переводе нажатия клавиши акселератора.
В терминах MFC это означает переопределение OnCommand метода :
OnCommand
Каркас вызывает эту функцию, когда пользователь выбирает элемент из меню, когда дочерний элемент управления отправляет сообщение с уведомлением или когда транслируется нажатие клавиши акселератора.