判断鼠标是否在指定窗口判断鼠标是否不在该窗口之中

来自:http://www.cppblog.com/nenlong/archive/2007/03/14/19825.html

 

使用的函数:WindowFromPoint()SetCapture()ReleaseCapture()

说明:在自定义的类中想知道鼠标是否在窗口之中比较容易,
可相反判断鼠标是否不在窗口之中是比较头疼的问题。
为了解决这个问题的关键是怎样设置鼠标捕获窗口是关键。
以下是简单的例子,还可以添加更有效的判断,把他变成
更为灵活。

void Cxxx::OnMouseMove(UINT nFlags, CPoint point) 
{
CButton::OnMouseMove(nFlags, point);
m_bOver=true;
SetCapture();
//将鼠标捕获设置到指定的窗口。在鼠标按钮按下的时候,
//这个窗口会为当前应用程序或整个系统接收所有鼠标输入 
POINT p2 = point;
ClientToScreen(&p2);
CWnd* wfp = WindowFromPoint(p2);//从鼠标位置获取窗口句柄
if (wfp && wfp->m_hWnd != this->m_hWnd)
{
m_bOver= FALSE;
ReleaseCapture();//为当前的应用程序释放鼠标捕获
}
Invalidate();
}



说明:这些是本人在学习VC中的一些心得,如果有不对的地方或要补充的地方请来电子邮件:
nenlong@163.net

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值