关于判断鼠标是否在指定窗口中的问题


我知道利用TrackMouseEvent和OnMouseLeave可以判断鼠标是否已经离开一个窗口。但是,由于我的窗口存在滚动条,当鼠标进入滚动条区域时,MouseLeave消息就会产生,这是我不期望的。我所希望的是只有在鼠标离开整个窗口区域时,然后产生某个消息或响应某个事件,这样我就好操作了。

VC

蔷薇D誓ぃ 13 years, 6 months ago

SetCapture可以解决你上述问题

原理描述:
在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。

捕获的事件:onmousedown、onmouseup、onmousemove、onclick、ondblclick、onmouseover和onmouseout。

当然,也需要你ReleaseCapture释放控制权,否则会造成资源占用升高

昵称带鸡没法起 answered 13 years, 6 months ago

Your Answer