powered by simpleCommunicator - 2.0.31     © 2024 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / WndProc и VK_LMENU/VK_RMENU
3 сообщений из 3, страница 1 из 1
WndProc и VK_LMENU/VK_RMENU
    #40118367
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дико извиняюсь, вопрос не совсем про дотнет, но около него.

Понадобилось тут для одного специфического контрола из одного специфического фреймворка заблокировать вызов контекстного меню. Как выяснилось, сделать это можно только в самописной реализации 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
WndProc и VK_LMENU/VK_RMENU
    #40118375
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
WndProc и VK_LMENU/VK_RMENU
    #40118390
Сон Веры Павловны
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник

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


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