右键点击按钮

问题描述:

我看到BN_CLICKED和BN_DBLCLK通知消息为按钮控件。但我怎么会捕捉任何按钮控制的右键单击消息?右键点击按钮

NM_RCLICK已发送,因此请仔细查看窗口消息。

您可以检查reciving BN_CLICKED,看是否NM_RCLICK甚至WM_RBUTTONDOWN

BN_CLICKED是按钮本身发送到按钮的父窗口的通知消息。要拦截WM_RBUTTONDOWN等消息,您需要继承按钮的子类,因为这些消息是从Windows本身发送到按钮窗口的消息。请参阅Safe Subclassing in Win32中的名为“实例子类”的部分

不是一个真正的答案,但我认为您可能能够捕获按钮上的上下文菜单。 (不知道我头顶的事件)。如果你可以捕捉上下文菜单按下按钮,那么它就像右键单击一样。

BUTTON down不是一条好路径。只有当用户按下按钮时才会捕获点击。尝试按下按钮,然后将手指从按钮上移开,然后将鼠标移开。不会为该按钮记录向上笔画,也不会点击。

我再次知道这不是一个答案,但它可能是一个线索。我是一名掌上电脑的人,所以大多数时候我没有“鼠标右键”。

手柄WM_CONTEXTMENU。这在处理右键鼠标消息方面的优点是您的用户将能够使用键盘等价物来右键单击。

这是一个古老的问题,但就我而言,仍然没有令人满意的答案。我面临同样的问题,发现接受的答案根本行不通 - 在我能够接触到他们之前,所提及的信息被拦截;我根本无法使用WM_RBUTTONDOWN等。

所以来这个问题的人真的应该知道this solution,它涉及子类按钮,处理子类中的鼠标右键消息,使用它们发送NM_RCLICK消息回到父窗口。