VC 怎么实现对鼠标离开对话框时,事件的处理

捕获鼠标离开对话框的事件

方法一:使用_TrackMouseEvent函数处理,对应的代码如下:
BOOL CLRCDlg::PreTranslateMessage(MSG* pMsg) 
{
	static BOOL	bMouseTracking = FALSE;

	if(pMsg->message==WM_MOUSELEAVE)     
	{
		bMouseTracking= FALSE;

		AfxMessageBox("鼠标已离开对话框");
	}
	else if(pMsg->message==WM_MOUSEMOVE)
	{
		if(!bMouseTracking)
		{
			TRACKMOUSEEVENT   tme;   
			tme.cbSize=sizeof(tme);   
			tme.dwFlags=TME_HOVER | TME_LEAVE;   
			tme.dwHoverTime=50;   
			tme.hwndTrack=m_hWnd;   
			bMouseTracking = _TrackMouseEvent(&tme);
		}
	}
	return CDialog::PreTranslateMessage(pMsg);
}

方法二:使用CRect的PtInRect函数,对应的代码如下:
BOOL CLRCDlg::PreTranslateMessage(MSG* pMsg)
{
	CRect rc;
	GetWindowRect(&rc);
	if(rc.PtInRect(pMsg->pt))
	{
	}
	else
	{
		AfxMessageBox("鼠标已离开对话框");
	}
	return CDialog::PreTranslateMessage(pMsg);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值