⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nukdlg.cpp

📁 一个界面类似QQ界面的小程序
💻 CPP
📖 第 1 页 / 共 3 页
字号:
{
	SetImage(m_BitmapTopLeft, nID);
	SetImageSize(&m_BitmapTopLeft, m_szBitmapTopLeft);
}

//载入左上角的资源位图
void CNUKDlg::SetTopLeftImage(CString strName)
{
	SetImage(m_BitmapTopLeft, strName);
	SetImageSize(&m_BitmapTopLeft, m_szBitmapTopLeft);
}

//载入上方的硬盘位图
void CNUKDlg::SetTopMidImage(UINT nID)
{
	SetImage(m_BitmapTopMid, nID);
	SetImageSize(&m_BitmapTopMid, m_szBitmapTopMid);
}

//载入上方的资源位图
void CNUKDlg::SetTopMidImage(CString strName)
{
	SetImage(m_BitmapTopMid, strName);
	SetImageSize(&m_BitmapTopMid, m_szBitmapTopMid);
}

//载入右上角的硬盘位图
void CNUKDlg::SetTopRightImage(UINT nID)
{
	SetImage(m_BitmapTopRight, nID);
	SetImageSize(&m_BitmapTopRight, m_szBitmapTopRight);
}

//载入右上角的资源位图
void CNUKDlg::SetTopRightImage(CString strName)
{
	SetImage(m_BitmapTopRight, strName);
	SetImageSize(&m_BitmapTopRight, m_szBitmapTopRight);
}

////////////////////////////////////////////////////////////////////////////////////
//载入左方的硬盘位图
void CNUKDlg::SetCenterLeftImage(UINT nID)
{
	SetImage(m_BitmapCenterLeft, nID);
	SetImageSize(&m_BitmapCenterLeft, m_szBitmapCenterLeft);
}

//载入左方的资源位图
void CNUKDlg::SetCenterLeftImage(CString strName)
{
	SetImage(m_BitmapCenterLeft, strName);
	SetImageSize(&m_BitmapCenterLeft, m_szBitmapCenterLeft);
}

//载入中间的硬盘位图
void CNUKDlg::SetCenterMidImage(UINT nID)
{
	SetImage(m_BitmapCenterMid, nID);
	SetImageSize(&m_BitmapCenterMid, m_szBitmapCenterMid);
}

//载入中间的资源位图
void CNUKDlg::SetCenterMidImage(CString strName)
{
	SetImage(m_BitmapCenterMid, strName);
	SetImageSize(&m_BitmapCenterMid, m_szBitmapCenterMid);
}

//载入右方的硬盘位图
void CNUKDlg::SetCenterRightImage(UINT nID)
{
	SetImage(m_BitmapCenterRight, nID);
	SetImageSize(&m_BitmapCenterRight, m_szBitmapCenterRight);
}

//载入右方的资源位图
void CNUKDlg::SetCenterRightImage(CString strName)
{
	SetImage(m_BitmapCenterRight, strName);
	SetImageSize(&m_BitmapCenterRight, m_szBitmapCenterRight);
}

////////////////////////////////////////////////////////////////////////////////
//载入左下角的硬盘位图
void CNUKDlg::SetBottomLeftImage(UINT nID)
{
	SetImage(m_BitmapBottomLeft, nID);
	SetImageSize(&m_BitmapBottomLeft, m_szBitmapBottomLeft);
}

//载入左下角的资源位图
void CNUKDlg::SetBottomLeftImage(CString strName)
{
	SetImage(m_BitmapBottomLeft, strName);
	SetImageSize(&m_BitmapBottomLeft, m_szBitmapBottomLeft);
}

//载入下方的硬盘位图
void CNUKDlg::SetBottomMidImage(UINT nID)
{
	SetImage(m_BitmapBottomMid, nID);
	SetImageSize(&m_BitmapBottomMid, m_szBitmapBottomMid);
}

//载入下方的资源位图
void CNUKDlg::SetBottomMidImage(CString strName)
{
	SetImage(m_BitmapBottomMid, strName);
	SetImageSize(&m_BitmapBottomMid, m_szBitmapBottomMid);
}

//载入右下角的硬盘位图
void CNUKDlg::SetBottomRightImage(UINT nID)
{
	SetImage(m_BitmapBottomRight, nID);
	SetImageSize(&m_BitmapBottomRight, m_szBitmapBottomRight);
}

//载入右下角的资源位图
void CNUKDlg::SetBottomRightImage(CString strName)
{
	SetImage(m_BitmapBottomRight, strName);
	SetImageSize(&m_BitmapBottomRight, m_szBitmapBottomRight);
}
void CNUKDlg::OnSizing(UINT fwSide, LPRECT pRect)
{
	CDialog::OnSizing(fwSide, pRect);

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

BOOL CNUKDlg::OnEraseBkgnd(CDC* pDC)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值

	return TRUE;//CDialog::OnEraseBkgnd(pDC);//
}

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

	m_bMouseDown = true;
	
	SetCapture();		   //设置鼠标全屏捕捉
    m_ptCurPoint=point;	   //记下按下时的鼠标坐标
	CRect rc;
	GetWindowRect(rc);
	m_rcCurRect = rc;//
	CRect rcW(0,0,rc.Width(),rc.Height());

	CRect rcW1(rcW.left+BorderSpace, rcW.top+BorderSpace, rcW.left+PointSpace+BorderSpace, rcW.top+PointSpace+BorderSpace);
	CRect rcW2(rcW.left+BorderSpace, rcW.top, rcW.right-BorderSpace, rcW.top+BorderSpace);
	CRect rcW3(rcW.right-PointSpace-BorderSpace, rcW.top+BorderSpace, rcW.right-BorderSpace, rcW.top+PointSpace+BorderSpace);

	CRect rcW4(rcW.left, rcW.top+BorderSpace, rcW.left+BorderSpace, rcW.bottom-BorderSpace);
	CRect rcW5(rcW.left+BorderSpace, rcW.top+BorderSpace, rcW.right-BorderSpace, rcW.bottom-BorderSpace);
	CRect rcW6(rcW.right-BorderSpace, rcW.top+BorderSpace, rcW.right, rcW.bottom-BorderSpace);

	CRect rcW7(rcW.left+BorderSpace, rcW.bottom-PointSpace-BorderSpace, rcW.left+PointSpace+BorderSpace, rcW.bottom-BorderSpace);
	CRect rcW8(rcW.left+BorderSpace, rcW.bottom-BorderSpace, rcW.right-BorderSpace, rcW.bottom);
	CRect rcW9(rcW.right-PointSpace-BorderSpace, rcW.bottom-PointSpace-BorderSpace, rcW.right-BorderSpace, rcW.bottom-BorderSpace);
	if(rcW2.PtInRect(point))
	{
		SetTimer(2,20,NULL);
		return;
	}
	if(rcW4.PtInRect(point))
	{
		SetTimer(4,20,NULL);
		return;
	}
	if(rcW5.PtInRect(point))
	{
		if(rcW1.PtInRect(point))
		{
			SetTimer(1,20,NULL);
			return;
		}
		else if(rcW3.PtInRect(point))
		{
			SetTimer(3,20,NULL);
			return;
		}
		else if(rcW7.PtInRect(point))
		{
			SetTimer(7,20,NULL);
			return;
		}
		else if(rcW9.PtInRect(point))
		{
			SetTimer(9,20,NULL);
			return;
		}
		else
		{
			SetTimer(5,20,NULL);
			return;
		}
	}
	if(rcW6.PtInRect(point))
	{
		SetTimer(6,20,NULL);
		return;
	}
	if(rcW8.PtInRect(point))
	{
		SetTimer(8,20,NULL);
		return;
	}
	
	CDialog::OnLButtonDown(nFlags, point);
}

void CNUKDlg::OnTimer(UINT_PTR nIDEvent)
{
	// TODO: 在此添加消息处理程序代码和/或调用默认值
	switch(nIDEvent)
	{
	case(1):	
		{
			CRect rcW;
			POINT point;
			GetWindowRect(rcW);//

			//实现拖动时窗体跟着右下角拉伸
			::GetCursorPos(&point);	//	
			if(point.y<rcW.bottom-400&&point.x<rcW.right-170)
			{
				MoveWindow(point.x-m_ptCurPoint.x,point.y-m_ptCurPoint.y, 
					m_rcCurRect.right-(point.x-m_ptCurPoint.x),
					m_rcCurRect.bottom-(point.y-m_ptCurPoint.y), true);

				CRect rc;
				GetWindowRect(rc);
				m_rcCurRect = rc;
			}
			else if(point.y<rcW.bottom-400&&point.x>rcW.right-170)
			{
				MoveWindow(m_rcCurRect.left ,point.y-m_ptCurPoint.y, 
					rcW.Width(),
					m_rcCurRect.bottom-(point.y-m_ptCurPoint.y), true);

				CRect rc;
				GetWindowRect(rc);
				m_rcCurRect = rc;
			}
			else if(point.y>rcW.bottom-400&&point.x<rcW.right-170)
			{
				MoveWindow(point.x-m_ptCurPoint.x,m_rcCurRect.top, 
					m_rcCurRect.right-(point.x-m_ptCurPoint.x),
					rcW.Height(), true);

				CRect rc;
				GetWindowRect(rc);
				m_rcCurRect = rc;
			}
		
			Invalidate();
		}
		break;
	case(2):	
		{
			CRect rcW;
			POINT point;
			GetWindowRect(rcW);//

			//实现拖动时窗体跟着右下角拉伸
			::GetCursorPos(&point);	//
			if(point.y<rcW.bottom-400)
			{
				MoveWindow(m_rcCurRect.left ,point.y-m_ptCurPoint.y, 
					rcW.Width(),
					m_rcCurRect.bottom-(point.y-m_ptCurPoint.y), true);

				CRect rc;
				GetWindowRect(rc);
				m_rcCurRect = rc;
			}

			Invalidate();
		}
		break;
	case(3):	
		{
			CRect rcW;
			POINT point;
			GetWindowRect(rcW);//

			//实现拖动时窗体跟着右边拉伸
			::GetCursorPos(&point);	//	
			if(point.y<rcW.bottom-400&&point.x>rcW.left+170)
			{
				MoveWindow(m_rcCurRect.left ,point.y-m_ptCurPoint.y, 
					rcW.Width()+point.x-(m_ptCurPoint.x+m_rcCurRect.left),
					rcW.Height()-(point.y-m_ptCurPoint.y-m_rcCurRect.top), true);

				m_ptCurPoint.x=point.x-m_rcCurRect.left;

				CRect rc;
				GetWindowRect(rc);
				m_rcCurRect = rc;
			}
			else if(point.y<rcW.bottom-400&&point.x<rcW.left+170)
			{
				MoveWindow(m_rcCurRect.left ,point.y-m_ptCurPoint.y, 
					170,
					m_rcCurRect.bottom-(point.y-m_ptCurPoint.y), true);
				m_ptCurPoint.x=170;

				CRect rc;
				GetWindowRect(rc);
				m_rcCurRect = rc;
			}
			else if(point.y>rcW.bottom-400&&point.x>rcW.left+170)
			{
				MoveWindow(m_rcCurRect.left ,m_rcCurRect.top, 
					rcW.Width()+point.x-(m_ptCurPoint.x+m_rcCurRect.left),
					m_rcCurRect.Height(), true);

				m_ptCurPoint.x=point.x-m_rcCurRect.left;
				CRect rc;
				GetWindowRect(rc);
				m_rcCurRect = rc;
			}

			Invalidate();
		}
		break;
	case(4):	
		{
			CRect rcW;
			POINT point;
			GetWindowRect(rcW);//

			//实现拖动时窗体跟着右下角拉伸
			::GetCursorPos(&point);	//	
			if(point.x<rcW.right-170)
			{
				MoveWindow(point.x-m_ptCurPoint.x,m_rcCurRect.top, 
					m_rcCurRect.right-(point.x-m_ptCurPoint.x),
					rcW.Height(), true);

				CRect rc;
				GetWindowRect(rc);
				m_rcCurRect = rc;
			}
			
			Invalidate();
		}
		break;
	case(5):	
		{
			CRect rcW;
			POINT point;
			GetWindowRect(rcW);

			//实现拖动时窗体跟着移动
			::GetCursorPos(&point);			
			MoveWindow(point.x-m_ptCurPoint.x ,point.y-m_ptCurPoint.y ,rcW.Width(),rcW.Height() ,true); 
		}
		break;
	case(6):
		{
			CRect rcW;
			POINT point;
			GetWindowRect(rcW);//

			//实现拖动时窗体跟着右边拉伸
			::GetCursorPos(&point);	//	
			if(point.x>rcW.left+170)
			{
				MoveWindow(m_rcCurRect.left ,m_rcCurRect.top, 
					rcW.Width()+point.x-(m_ptCurPoint.x+m_rcCurRect.left),
					rcW.Height(), true);

				m_ptCurPoint.x=point.x-m_rcCurRect.left;
				CRect rc;
				GetWindowRect(rc);
				m_rcCurRect = rc;
			}
			
			Invalidate();
		}
		break;
	case(7):	
		{
			CRect rcW;
			POINT point;
			GetWindowRect(rcW);//

			//实现拖动时窗体跟着右边拉伸
			::GetCursorPos(&point);	//	
			if(point.y>rcW.top+400&&point.x<rcW.right-170)
			{
				MoveWindow(point.x-m_ptCurPoint.x,m_rcCurRect.top, 
					m_rcCurRect.right-(point.x-m_ptCurPoint.x),
					rcW.Height()+(point.y-m_ptCurPoint.y-m_rcCurRect.top), true);

				m_ptCurPoint.y=point.y-m_rcCurRect.top;
				CRect rc;
				GetWindowRect(rc);
				m_rcCurRect = rc;
			}
			else if(point.y<rcW.top+400&&point.x<rcW.right-170)
			{
				MoveWindow(point.x-m_ptCurPoint.x,m_rcCurRect.top, 
					m_rcCurRect.right-(point.x-m_ptCurPoint.x),
					rcW.Height(), true);

				CRect rc;
				GetWindowRect(rc);
				m_rcCurRect = rc;
			}
			else if(point.y>rcW.top+400&&point.x>rcW.right-170)
			{
				MoveWindow(m_rcCurRect.left ,m_rcCurRect.top, 
					rcW.Width(),
					rcW.Height()+point.y-(m_ptCurPoint.y+m_rcCurRect.top), true);

				m_ptCurPoint.x=0;
				m_ptCurPoint.y=point.y-m_rcCurRect.top;
				CRect rc;
				GetWindowRect(rc);
				m_rcCurRect = rc;
			}

			Invalidate();
		}
		break;
	case(8):	
		{
			CRect rcW;
			POINT point;
			GetWindowRect(rcW);//

			//实现拖动时窗体跟着右边拉伸
			::GetCursorPos(&point);	//	
			if(point.y>rcW.top+400)
			{
				MoveWindow(m_rcCurRect.left ,m_rcCurRect.top, 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -