1

使用在代码中工作的方法可能很好,但不确切知道幕后发生的事情并不是一种很好的感觉。诸如空缺或不完整的工作之类的费用。

我碰巧找到ReleaseMouseCapture()并在一个方法(OnMouseUp事件)中使用过,因为这似乎是必要的,但我注意到使用或不使用此方法至少不会影响我的应用程序的视觉部分

你能告诉我什么时候应该使用它吗?

谢谢。

4

3 回答 3

2

MSDN 说:

When an object captures the mouse, all mouse related events are treated as if the object with mouse capture perform the event, even if the mouse pointer is over another object.

取决于你正在做什么,它可能有意义,也可能没有意义。我们需要更多信息。但归结为,捕获它的对象将侦听并接收来自鼠标的所有事件。这样你可以更好地组织你的鼠标逻辑。例如,在屏幕上拖动一个对象将是完美的,因为对象本身将获取所有鼠标事件。

但是,如果你只是在使用ReleaseCaptureMouse,那么不确定你为什么要使用它。你在CaptureMouse任何地方使用吗?

于 2012-08-27T19:26:44.470 回答
2

每当我编写代码捕获鼠标时,我都会使用它,完成后需要释放鼠标捕获。

一个典型的例子是拖放控件。当我开始拖动操作时,有时我希望应用程序或控件捕获鼠标,以便将鼠标所做的任何移动都发送到特定的应用程序或控件,而不管鼠标的实际位置如何。当用户释放鼠标按钮时,我需要释放鼠标捕获,以便应用程序/控件停止接收它不感兴趣的鼠标事件。

于 2012-08-27T19:27:42.007 回答
1

你只需要在ReleaseMouseCapture你打电话的情况下打电话CaptureMouse,所以在你的情况下,听起来你不需要它。

捕获鼠标意味着即使鼠标移动到控件边界之外,控件也会收到鼠标消息。它用于诸如拖放之类的事情,其中​​拖放将发生在控件之外。

于 2012-08-27T19:27:00.447 回答