鼠标捕获

【勇芳软件工作室】汉化HomePreviousNext

系统通常在鼠标事件发生时将鼠标信息发送到包含光标热点的窗口。应用程序可以使用SetCapture功能将鼠标消息路由到特定窗口来更改此行为。窗口接收所有鼠标消息,直到应用程序调用{??989796012}函数或指定另一个捕获窗口,或者直到用户单击由另一个线程创建的窗口。

每当鼠标捕获更改时,Windows会向失去鼠标捕获的窗口发送WM_CAPTURECHANGED消息。消息的【lParam的】参数指定正在获取鼠标捕获的窗口的句柄。

只有前景窗口可以捕获鼠标输入。当背景窗口尝试捕获鼠标输入时,它将仅接收当光标热点位于窗口的可见部分内时发生的鼠标事件的消息。

如果窗口必须接收所有鼠标输入,即使光标移动到窗口外也可以捕获鼠标输入。例如,应用程序通常在鼠标“按钮”向下的事件之后跟踪光标位置,跟随光标直到发生“按钮向上”事件。如果应用程序没有捕获鼠标输入,并且用户在窗口外部释放鼠标按钮,则窗口不会收到按钮向上的消息。

一个线程可以使用GetCapture函数来确定它的一个窗口是否捕获了鼠标。如果其中一个线程的窗口捕获了鼠标,GetCapture将检索窗口的句柄。