如何判断鼠标在客户区外的状态

来源:百度知道 编辑:UC知道 时间:2024/05/17 00:37:53
在客户区里判断鼠标左键是否按下和释放很简单
处理WM_LBUTTONDOWN和WM_LBUTTONUP就行,可是在客户区外按下或松开左键不会产生这个消息的,例如,我在客户区按下左键,然后按着不放移动鼠标到客户区外,然后再松开,这样就被认为没有松开左键~~~
找到解决方法了,直接移动的时候就判断是否按下http://hi.baidu.com/ypxmaomao/blog/item/45ebd38bf9224a779f2fb48c.html

搜非客户区鼠标消息补获 你会看到一大陀

WM_NCLBUTTONDOWN
WM_NCLBUTTONUP

鼠标按下拖动的过程,cpu进入了一个短循环,被SetCapture了。
你看按钮按下拖动的过程,就是了,否则只用wm_lbuttondown来响应,是不能达到那个效果的。

CRect::PtInRect

估计会用到这个函数吧