您的位置:首页 > 其它

当鼠标移动到界面外面, 如何继续得到WM_LBUTTONUP消息

2008-12-27 16:29 323 查看
【问题】:

当鼠标移动到界面外面, 怎么得到WM_LBUTTONUP消息?

【解决方案】

使用SetCapture函数可以解决,SetCapture函数是让鼠标捕获属于窗口所在的线程。一旦界面捕获了鼠标,所有的鼠标输入都响应在该窗口中,不管鼠标的坐标是否在界面外面。

具体措施如下:

void ControlFrameUnit::OnLButtonDown(WPARAM wParam, LPARAM lParam)

{

::SetCapture(the_frame->get_wnd());

。。。

}

void ControlFrameUnit::OnMouseMove(WPARAM wParam, LPARAM lParam)

{

if (::GetCapture() != the_frame->get_wnd())

{

return;

}

。。。

}

void ControlFrameUnit::OnLButtonUp(WPARAM wParam, LPARAM lParam)

{

if (::GetCapture() == the_frame->get_wnd())

{

::ReleaseCapture();

}

。。。

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐