c++ mfc拖动无边框窗体

void CDemoDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	m_bMoving = TRUE;
	SetCapture();
	m_ptMouse = point;

	CDialogEx::OnLButtonDown(nFlags, point);
}


//void CDemoDlg::OnMoving(UINT fwSide, LPRECT pRect)
//{
//	CDialogEx::OnMoving(fwSide, pRect);
//
//	// TODO: 在此处添加消息处理程序代码
//}


void CDemoDlg::OnMouseMove(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	if(m_bMoving)
	{
		int x,y;
		x = point.x - m_ptMouse.x;
		y = point.y - m_ptMouse.y;
		if(abs(x) >= 2 || abs(y) >= 2)
		{
			RECT rc = {0};
			GetWindowRect(&rc);
			OffsetRect(&rc,x,y);
			MoveWindow(&rc,TRUE);
		}
	}

	CDialogEx::OnMouseMove(nFlags, point);
}


void CDemoDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	if(m_bMoving)
	{
		m_bMoving = FALSE;
		ReleaseCapture();
	}
	CDialogEx::OnLButtonUp(nFlags, point);
}


void CDemoDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized)
{
	CDialogEx::OnActivate(nState, pWndOther, bMinimized);

	if(nState == WA_INACTIVE && m_bMoving)
	{
		m_bMoving = FALSE;
		ReleaseCapture();
	}

	// TODO: 在此处添加消息处理程序代码
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值