Щелкните правой кнопкой мыши на кнопке - PullRequest
4 голосов
/ 27 октября 2009

Я вижу сообщения BN_CLICKED и BN_DBLCLK для кнопки управления. но как мне поймать сообщение правой кнопкой мыши для любого элемента управления кнопки?

Ответы [ 6 ]

2 голосов
/ 27 октября 2009

Вы можете использовать WM_RBUTTONDOWN , WM_RBUTTONUP и WM_RBUTTONDBLCLK .

1 голос
/ 07 ноября 2009

Ручка WM_CONTEXTMENU. Преимущество этого перед обработкой сообщений правой кнопки мыши в том, что ваши пользователи смогут использовать эквиваленты клавиатуры для щелчка правой кнопкой мыши.

1 голос
/ 30 октября 2009

BN_CLICKED - это уведомление, отправляемое в родительское окно кнопки самой кнопкой. Чтобы перехватить сообщения WM_RBUTTONDOWN и т. Д., Вам нужно разделить кнопку на подклассы, поскольку это сообщения, отправленные самой Windows в окно кнопки. См. Раздел «Создание подклассов экземпляров» в Безопасное создание подклассов в Win32

0 голосов
/ 27 мая 2015

Это старый вопрос, но он все еще не получил удовлетворительного ответа, насколько я понимаю. Я столкнулся с той же проблемой и обнаружил, что принятый ответ просто не работает - упомянутые сообщения перехватываются, прежде чем я могу их достать; Я просто не мог использовать WM_RBUTTONDOWN и т. Д.

Таким образом, люди, приходящие на этот вопрос, действительно должны знать о этом решении , которое включает в себя создание подкласса кнопки, обработку сообщения (й) правой кнопкой мыши в подклассе, использование их для отправки сообщения NM_RCLICK обратно родительское окно.

0 голосов
/ 06 ноября 2009

Не совсем ответ, но я думаю, что вы можете поймать контекстное меню на кнопке.(не знаю, событие с моей головы).Если вы можете поймать контекстное меню нажмите на кнопку, то это так же, как правой кнопкой мыши.

КНОПКА вниз - это не хороший путь.Клик ловится только тогда, когда пользователь нажимает кнопку вверх.Попробуйте нажать кнопку, и перед тем, как убрать палец с кнопки, уберите с нее мышь ... удар по этой кнопке не записывается, как и щелчок.

Опять же, я знаю, что это не ответ, но это может быть подсказка.Я ручной парень, поэтому чаще всего у меня нет «правой кнопки мыши».

0 голосов
/ 27 октября 2009

NM_RCLICK отправлено, так что присмотритесь к сообщениям Windows.

вы можете проверить получение BN_CLICKED, чтобы узнать, является ли NM_RCLICK или даже WM_RBUTTONDOWN

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