我正在阅读有关 GetCapture() 函数的信息,它是 mfc 的一部分。 我仍然不清楚它的作用,以及捕获鼠标的含义,正如它在此处所说:
http://msdn.microsoft.com/en-us/library/dxa5eaaa(v=vs.80).aspx
在我的书中是这样使用的:
void CSketcherView::OnLButtonUp(UINY nFlags, CPoint point)
{
if(this == GetCapture())
ReleaseCapture(); // Stop capturing mouse messages
// ... add information to document
}
那么 GetCapture() 返回什么? “捕获”鼠标是什么意思?
最佳答案
以鼠标捕获为目的的具体例子:
拿一个有两个按钮的窗口。单击其中之一并按住鼠标按钮。现在将鼠标光标拖到第二个按钮上并释放鼠标按钮。第一个按钮将收到 WM_LBUTTONUP
消息,但第二个按钮不会收到消息,即使鼠标光标位于它上面也是如此。
当第一个按钮收到 WM_LBUTTONDOWN
消息时,它捕获鼠标。当窗口捕获鼠标时,它保证它将接收所有后续鼠标事件(特别是 WM_LBUTTONUP
消息),即使鼠标已被拖出其窗口边界。这很重要,以便它可以将按下按钮与按下按钮消息相匹配并保持正确的状态。这对于可用性也很重要(如果您单击一个按钮并意外移动到另一个按钮,您既不想触发第一个按钮也不想触发第二个按钮)。
关于c++ - 引用 GetCapture() 函数捕获鼠标意味着什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11602911/