Гость
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WndProc и VK_LMENU/VK_RMENU / 3 сообщений из 3, страница 1 из 1
08.12.2021, 12:10
    #40118367
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WndProc и VK_LMENU/VK_RMENU
Дико извиняюсь, вопрос не совсем про дотнет, но около него.

Понадобилось тут для одного специфического контрола из одного специфического фреймворка заблокировать вызов контекстного меню. Как выяснилось, сделать это можно только в самописной реализации IMessageFilter.PreFilterMessage , который фактически вызывается внутри WndProc хука приложения. Ну вроде как дело это нехитрое - если контрол имеет активный фокус ввода, возвращаем true (т.е. останавливаем дальнейшую обработку сообщения) в случаях, когда:
1. Message.Msg=WM_RBUTTONUP
2. Message.Msg=WM_CONTEXTMENU
3. Message.Msg=WM_SYSKEYDOWN && Message.WParam==VK_F10
4. Message.Msg=WM_KEYUP && Message.WParam==VK_APPS
Вроде как всё работает, но смущает наличие в хелпе по virtual key codes ещё двух констант: VK_LMENU и VK_RMENU. Каким физическим кнопкам они соответствуют? Нужно ли аналогично блокировать их нажатие? Я вообще считал, что VK_RMENU - это кнопка ≣ в правой части клавиатуры рядом с windows key, однако, как выяснилось, ≣ - это как раз VK_APPS. Что же в таком случае эти VK_LMENU и VK_RMENU?
...
Рейтинг: 0 / 0
08.12.2021, 12:38
    #40118375
Konst_One
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WndProc и VK_LMENU/VK_RMENU
...
Рейтинг: 0 / 0
08.12.2021, 13:34
    #40118390
Сон Веры Павловны
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WndProc и VK_LMENU/VK_RMENU

Спасибо, понял - это по сути всё та же кнопка ALT (VK_MENU), но посредством GetKeyboardState можно получить состояние левого или правого ALT, задавая VK_LMENU или VK_RMENU соответственно.
Вопрос исчерпан.
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WndProc и VK_LMENU/VK_RMENU / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]