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

📄 manage_whview.cpp

📁 用VC编写的立体仓库的管理软件源程序和设计说明书。
💻 CPP
📖 第 1 页 / 共 5 页
字号:
				pOldFont = pDC->SelectObject(&ftNote);

				switch (gpDoc->m_iDeviceKind[i])
				{
				case 2:	pDC->SetBkColor(RGB( 51,255,255)); break;
				case 3:	pDC->SetBkColor(RGB(255,153,255)); break;
				}
				pDC->SetTextColor(RGB(0,0,0));
				pDC->DrawText(sCount,&rc,DT_BOTTOM|DT_CENTER|DT_SINGLELINE);
				pDC->SelectObject(pOldFont);
				ftNote.DeleteObject();
			}
/*			//判断机械手臂当前位置。重画机械手臂
			if (i == 24 && m_iRobortArmCurPos == 1)				RobortArmStep1(pDC,TRUE);
			else if (i == 24 && m_iRobortArmCurPos == 7)		RobortArmStep7(pDC,TRUE);
			else if (i == 14 && m_iRobortArmCurPos == 5)		RobortArmStep5(pDC,TRUE);
			else if (i == 17 && m_iRobortArmCurPos == 6)		RobortArmStep6(pDC,TRUE);
			else if (i == 12 && m_iThreeCoordinateCurPos == 2)	ThreeCoordinateStep2(pDC,TRUE);
			else if (i == 19 && m_iThreeCoordinateCurPos == 3)	ThreeCoordinateStep3(pDC,TRUE);*/
		}
	}	
	//画堆垛机
	pDC->SelectStockObject(NULL_PEN);
	pOldBrush = pDC->SelectObject(&this->m_liftBrush);
	pDC->Rectangle((int)(m_W*gpDoc->m_dLiftPosX1Arra[gpDoc->m_iLiftStatus]),
				   (int)(m_H*0.507),
				   (int)(m_W*gpDoc->m_dLiftPosX2Arra[gpDoc->m_iLiftStatus]),
				   (int)(m_H*0.546));
	//画LGV
	this->DrawLGVStatus(pDC,gpDoc->m_iLGVPosX,gpDoc->m_iLGVPosY,gpDoc->m_iLGVStatus);
	pDC->SelectObject(pOldBrush);
}

void CManage_WHView::RobortArmStep1(CDC *pDC, BOOL bHave)
{
	CBrush brushUpRo1,*pOldBrush;
	CPen pen1,pen2,pen3,*pOldPen;
	pen1.CreatePen(PS_SOLID,10,RGB(255,255,250));
	pen2.CreatePen(PS_SOLID,5,RGB(255,255,250));
	pen3.CreatePen(PS_SOLID,8,RGB(255,255,250));
	brushUpRo1.CreateSolidBrush(RGB(255,255,250));
	pOldBrush = pDC->SelectObject(&brushUpRo1);
	CRect rcDown,rcUp;
	rcDown.SetRect((int)(m_W*0.295),(int)(m_H*0.37),(int)(m_W*0.335),(int)(m_H*0.43));

	rcUp.left   = (int)(rcDown.left + rcDown.Width()  * 0.1);
	rcUp.right  = (int)(rcDown.left + rcDown.Width()  * 0.9);
	rcUp.top    = (int)(rcDown.top  + rcDown.Height() * 0.1);
	rcUp.bottom = (int)(rcDown.top  + rcDown.Height() * 0.9);
	if (bHave)
	{
		//画六坐标机器人底座
		pDC->SelectStockObject(NULL_PEN);
		pDC->Ellipse(rcUp);
		//画手臂
		pOldPen = pDC->SelectObject(&pen1);
		pDC->MoveTo((int)(m_W*0.315),(int)(m_H*0.42));
		pDC->LineTo((int)(m_W*0.315),(int)(m_H*0.44));
		
		pOldPen = pDC->SelectObject(&pen2);
		pDC->MoveTo((int)(m_W*0.315),(int)(m_H*0.44));
		pDC->LineTo((int)(m_W*0.315),(int)(m_H*0.48));
		
		pOldPen = pDC->SelectObject(&pen3);
		pDC->MoveTo((int)(m_W*0.315),(int)(m_H*0.48));
		pDC->LineTo((int)(m_W*0.315),(int)(m_H*0.49));
		//六坐标机器人当前位置为 1
		m_iRobortArmCurPos = 1;
	}
	else
	{
		int iMode = pDC->GetROP2();
		pDC->SetROP2(R2_NOTCOPYPEN);
		//画六坐标机器人底座
		pDC->SelectStockObject(NULL_PEN);
		pDC->Ellipse(rcUp);
		pOldPen = pDC->SelectObject(&pen1);
		pDC->MoveTo((int)(m_W*0.315),(int)(m_H*0.42));
		pDC->LineTo((int)(m_W*0.315),(int)(m_H*0.44));
		
		pOldPen = pDC->SelectObject(&pen2);
		pDC->MoveTo((int)(m_W*0.315),(int)(m_H*0.44));
		pDC->LineTo((int)(m_W*0.315),(int)(m_H*0.48));
		
		pOldPen = pDC->SelectObject(&pen3);
		pDC->MoveTo((int)(m_W*0.315),(int)(m_H*0.48));
		pDC->LineTo((int)(m_W*0.315),(int)(m_H*0.49));

		pDC->SetROP2(iMode);
		if (gpDoc->m_iDeviceStatusArra[24] == 1)
		{
			pOldBrush = pDC->SelectObject(&this->m_haveTrayBrush);
			pDC->SelectStockObject(NULL_PEN);
			rcDown.SetRect((int)(m_W*0.29),(int)(m_H*0.44),(int)(m_W*0.34),(int)(m_H*0.55));

			rcUp.left   = (int)(rcDown.left + rcDown.Width()  * 0.2);
			rcUp.right  = (int)(rcDown.left + rcDown.Width()  * 0.9);
			rcUp.top    = (int)(rcDown.top  + rcDown.Height() * 0.2);
			rcUp.bottom = (int)(rcDown.top  + rcDown.Height() * 0.9);
			pDC->Rectangle(rcUp);

			CString sNowNum;
			sNowNum.Format("%d",gpDoc->m_iNowNum[24]);
			LOGFONT nFont;
			memset(&nFont,0,sizeof(LOGFONT));
			nFont.lfHeight = 15; //字高
			lstrcpy(nFont.lfFaceName,"Arial");  //设置字体
			
			CFont ftNote,*pOldFont;
			ftNote.CreateFontIndirect(&nFont); 
			pOldFont = pDC->SelectObject(&ftNote);
			
			pDC->SetBkColor(RGB(255,153,255));
			pDC->SetTextColor(RGB(0,0,0));
			pDC->DrawText(sNowNum,&rcUp,DT_BOTTOM|DT_CENTER|DT_SINGLELINE);
			
			pDC->SelectObject(pOldFont);
			ftNote.DeleteObject();
		}
		pOldPen = pDC->SelectObject(&m_pen);
		pDC->MoveTo((int)(m_W*0.29),(int)(m_H*0.44));
		pDC->LineTo((int)(m_W*0.34),(int)(m_H*0.44));
	}		

	pDC->SelectObject(pOldPen);
	pDC->SelectObject(pOldBrush);
	pen1.DeleteObject();
	pen2.DeleteObject();
	pen3.DeleteObject();
	brushUpRo1.DeleteObject();
}

void CManage_WHView::RobortArmStep2(CDC *pDC, BOOL bHave)
{
	CBrush brushUpRo1,*pOldBrush;
	CPen pen1,pen2,pen3,*pOldPen;
	pen1.CreatePen(PS_SOLID,10,RGB(255,255,250));
	pen2.CreatePen(PS_SOLID,5,RGB(255,255,250));
	pen3.CreatePen(PS_SOLID,8,RGB(255,255,250));
	brushUpRo1.CreateSolidBrush(RGB(255,255,250));
	pOldBrush = pDC->SelectObject(&brushUpRo1);
	CRect rcDown,rcUp;
	rcDown.SetRect((int)(m_W*0.295),(int)(m_H*0.37),(int)(m_W*0.335),(int)(m_H*0.43));
	rcUp.left   = (int)(rcDown.left + rcDown.Width()  * 0.1);
	rcUp.right  = (int)(rcDown.left + rcDown.Width()  * 0.9);
	rcUp.top    = (int)(rcDown.top  + rcDown.Height() * 0.1);
	rcUp.bottom = (int)(rcDown.top  + rcDown.Height() * 0.9);
	if (bHave)
	{
		//画六坐标机器人底座
		pDC->SelectStockObject(NULL_PEN);
		pDC->Ellipse(rcUp);
		pOldPen = pDC->SelectObject(&pen1);
		pDC->MoveTo((int)(m_W*0.315),(int)(m_H*0.4));
		pDC->LineTo((int)(m_W*0.33),(int)(m_H*0.415));
		
		pOldPen = pDC->SelectObject(&pen2);
		pDC->MoveTo((int)(m_W*0.33),(int)(m_H*0.415));
		pDC->LineTo((int)(m_W*0.355),(int)(m_H*0.445));
		
		pOldPen = pDC->SelectObject(&pen3);
		pDC->MoveTo((int)(m_W*0.355),(int)(m_H*0.445));
		pDC->LineTo((int)(m_W*0.36),(int)(m_H*0.45));

		this->m_iRobortArmCurPos = 2;
	}
	else
	{
		int iMode = pDC->GetROP2();
		pDC->SetROP2(R2_NOTCOPYPEN);
		//画六坐标机器人底座
		pDC->SelectStockObject(NULL_PEN);
		pDC->Ellipse(rcUp);
		pOldPen = pDC->SelectObject(&pen1);
		pDC->MoveTo((int)(m_W*0.315),(int)(m_H*0.4));
		pDC->LineTo((int)(m_W*0.33),(int)(m_H*0.415));
		
		pOldPen = pDC->SelectObject(&pen2);
		pDC->MoveTo((int)(m_W*0.33),(int)(m_H*0.415));
		pDC->LineTo((int)(m_W*0.355),(int)(m_H*0.445));
		
		pOldPen = pDC->SelectObject(&pen3);
		pDC->MoveTo((int)(m_W*0.355),(int)(m_H*0.445));
		pDC->LineTo((int)(m_W*0.36),(int)(m_H*0.45));

		//将当前位置的状态置0
		CAdoConnection cn;
		cn.OpenUDLFile(gstrConSQLSer);
		cn.Execute("UPDATE T_Device_Site_State SET F_State=0 WHERE F_Index=1",adCmdText);
		cn.Close();
		rcDown.SetRect((int)(m_W*0.35),(int)(m_H*0.44),(int)(m_W*0.38),(int)(m_H*0.47));
		rcUp.left   = (int)(rcDown.left + rcDown.Width()  * 0.2);
		rcUp.right  = (int)(rcDown.left + rcDown.Width()  * 0.9);
		rcUp.top    = (int)(rcDown.top  + rcDown.Height() * 0.2);
		rcUp.bottom = (int)(rcDown.top  + rcDown.Height() * 0.9);
		pDC->Rectangle(rcUp);

		pDC->SetROP2(iMode);
		pOldPen = pDC->SelectObject(&m_pen);
		pDC->MoveTo((int)(m_W*0.38),(int)(m_H*0.47));
		pDC->LineTo((int)(m_W*0.35),(int)(m_H*0.47));
		pDC->LineTo((int)(m_W*0.35),(int)(m_H*0.44));
		pDC->LineTo((int)(m_W*0.38),(int)(m_H*0.44));

		gpDoc->m_iDeviceStatusArra[0] = 0;
	}		

	pDC->SelectObject(pOldPen);
	pDC->SelectObject(pOldBrush);
	pen1.DeleteObject();
	pen2.DeleteObject();
	pen3.DeleteObject();
	brushUpRo1.DeleteObject();
}

void CManage_WHView::RobortArmStep3(CDC *pDC, BOOL bHave)
{
	CBrush brushUpRo1,*pOldBrush;
	CPen pen1,pen2,pen3,*pOldPen;
	pen1.CreatePen(PS_SOLID,10,RGB(255,255,250));
	pen2.CreatePen(PS_SOLID,5,RGB(255,255,250));
	pen3.CreatePen(PS_SOLID,8,RGB(255,255,250));
	brushUpRo1.CreateSolidBrush(RGB(255,255,250));
	pOldBrush = pDC->SelectObject(&brushUpRo1);
	CRect rcDown,rcUp;
	rcDown.SetRect((int)(m_W*0.295),(int)(m_H*0.37),(int)(m_W*0.335),(int)(m_H*0.43));
	rcUp.left   = (int)(rcDown.left + rcDown.Width()  * 0.1);
	rcUp.right  = (int)(rcDown.left + rcDown.Width()  * 0.9);
	rcUp.top    = (int)(rcDown.top  + rcDown.Height() * 0.1);
	rcUp.bottom = (int)(rcDown.top  + rcDown.Height() * 0.9);
	if (bHave)
	{
		//画六坐标机器人底座
		pDC->SelectStockObject(NULL_PEN);
		pDC->Ellipse(rcUp);
		pOldPen = pDC->SelectObject(&pen1);
		pDC->MoveTo((int)(m_W*0.315),(int)(m_H*0.4));
		pDC->LineTo((int)(m_W*0.33),(int)(m_H*0.425));
		
		pOldPen = pDC->SelectObject(&pen2);
		pDC->MoveTo((int)(m_W*0.33),(int)(m_H*0.425));
		pDC->LineTo((int)(m_W*0.36),(int)(m_H*0.475));
		
		pOldPen = pDC->SelectObject(&pen3);
		pDC->MoveTo((int)(m_W*0.36),(int)(m_H*0.475));
		pDC->LineTo((int)(m_W*0.365),(int)(m_H*0.485));

		this->m_iRobortArmCurPos = 3;
	}
	else
	{
		int iMode = pDC->GetROP2();
		pDC->SetROP2(R2_NOTCOPYPEN);
		//画六坐标机器人底座
		pDC->SelectStockObject(NULL_PEN);
		pDC->Ellipse(rcUp);
		pOldPen = pDC->SelectObject(&pen1);
		pDC->MoveTo((int)(m_W*0.315),(int)(m_H*0.4));
		pDC->LineTo((int)(m_W*0.33),(int)(m_H*0.425));
		
		pOldPen = pDC->SelectObject(&pen2);
		pDC->MoveTo((int)(m_W*0.33),(int)(m_H*0.425));
		pDC->LineTo((int)(m_W*0.36),(int)(m_H*0.475));
		
		pOldPen = pDC->SelectObject(&pen3);
		pDC->MoveTo((int)(m_W*0.36),(int)(m_H*0.475));
		pDC->LineTo((int)(m_W*0.365),(int)(m_H*0.485));

		CAdoConnection cn;
		cn.OpenUDLFile(gstrConSQLSer);
		cn.Execute("UPDATE T_Device_Site_State SET F_State=0 WHERE F_Index=4",adCmdText);
		cn.Close();

		rcDown.SetRect((int)(m_W*0.35),(int)(m_H*0.47),(int)(m_W*0.38),(int)(m_H*0.5));
		rcUp.left   = (int)(rcDown.left + rcDown.Width()  * 0.2);
		rcUp.right  = (int)(rcDown.left + rcDown.Width()  * 0.9);
		rcUp.top    = (int)(rcDown.top  + rcDown.Height() * 0.2);
		rcUp.bottom = (int)(rcDown.top  + rcDown.Height() * 0.9);
		pDC->Rectangle(rcUp);

		pDC->SetROP2(iMode);
		pOldPen = pDC->SelectObject(&m_pen);
		pDC->MoveTo((int)(m_W*0.38),(int)(m_H*0.47));
		pDC->LineTo((int)(m_W*0.35),(int)(m_H*0.47));
		pDC->LineTo((int)(m_W*0.35),(int)(m_H*0.44));

		pDC->MoveTo((int)(m_W*0.38),(int)(m_H*0.5));
		pDC->LineTo((int)(m_W*0.35),(int)(m_H*0.5));
		pDC->LineTo((int)(m_W*0.35),(int)(m_H*0.47));

		pDC->MoveTo((int)(m_W*0.29),(int)(m_H*0.44));
		pDC->LineTo((int)(m_W*0.34),(int)(m_H*0.44));
		pDC->LineTo((int)(m_W*0.34),(int)(m_H*0.55));

		gpDoc->m_iDeviceStatusArra[4] = 0;
	}		

	pDC->SelectObject(pOldPen);
	pDC->SelectObject(pOldBrush);
	pen1.DeleteObject();
	pen2.DeleteObject();
	pen3.DeleteObject();
	brushUpRo1.DeleteObject();
}

void CManage_WHView::RobortArmStep4(CDC *pDC, BOOL bHave)
{
	CBrush brushUpRo1,*pOldBrush;
	CPen pen1,pen2,pen3,*pOldPen;
	pen1.CreatePen(PS_SOLID,10,RGB(255,255,250));
	pen2.CreatePen(PS_SOLID,5,RGB(255,255,250));
	pen3.CreatePen(PS_SOLID,8,RGB(255,255,250));
	brushUpRo1.CreateSolidBrush(RGB(255,255,250));
	pOldBrush = pDC->SelectObject(&brushUpRo1);
	CRect rcDown,rcUp;
	rcDown.SetRect((int)(m_W*0.295),(int)(m_H*0.37),(int)(m_W*0.335),(int)(m_H*0.43));
	rcUp.left   = (int)(rcDown.left + rcDown.Width()  * 0.1);
	rcUp.right  = (int)(rcDown.left + rcDown.Width()  * 0.9);
	rcUp.top    = (int)(rcDown.top  + rcDown.Height() * 0.1);
	rcUp.bottom = (int)(rcDown.top  + rcDown.Height() * 0.9);
	if (bHave)
	{
		//画六坐标机器人底座
		pDC->SelectStockObject(NULL_PEN);
		pDC->Ellipse(rcUp);
		pOldPen = pDC->SelectObject(&pen1);
		pDC->MoveTo((int)(m_W*0.315),(int)(m_H*0.4));
		pDC->LineTo((int)(m_W*0.33),(int)(m_H*0.435));
		
		pOldPen = pDC->SelectObject(&pen2);
		pDC->MoveTo((int)(m_W*0.33),(int)(m_H*0.435));
		pDC->LineTo((int)(m_W*0.355),(int)(m_H*0.5));
		
		pOldPen = pDC->SelectObject(&pen3);
		pDC->MoveTo((int)(m_W*0.355),(int)(m_H*0.5));
		pDC->LineTo((int)(m_W*0.36),(int)(m_H*0.51));

		this->m_iRobortArmCurPos = 4;
	}
	else
	{
		int iMode = pDC->GetROP2();
		pDC->SetROP2(R2_NOTCOPYPEN);
		//画六坐标机器人底座
		pDC->SelectStockObject(NULL_PEN);
		pDC->Ellipse(rcUp);
		pOldPen = pDC->SelectObject(&pen1);
		pDC->MoveTo((int)(m_W*0.315),(int)(m_H*0.4));
		pDC->LineTo((int)(m_W*0.33),(int)(m_H*0.435));
		
		pOldPen = pDC->SelectObject(&pen2);
		pDC->MoveTo((int)(m_W*0.33),(int)(m_H*0.435));
		pDC->LineTo((int)(m_W*0.355),(int)(m_H*0.5));
		
		pOldPen = pDC->SelectObject(&pen3);
		pDC->MoveTo((int)(m_W*0.355),(int)(m_H*0.5));
		pDC->LineTo((int)(m_W*0.36),(int)(m_H*0.51));

		CAdoConnection cn;
		cn.OpenUDLFile(gstrConSQLSer);
		cn.Execute("UPDATE T_Device_Site_State SET F_State=0 WHERE F_Index=7",adCmdText);
		cn.Close();

		rcDown.SetRect((int)(m_W*0.35),(int)(m_H*0.5),(int)(m_W*0.38),(int)(m_H*0.53));
		rcUp.left   = (int)(rcDown.left + rcDown.Width()  * 0.2);
		rcUp.right  = (int)(rcDown.left + rcDown.Width()  * 0.9);
		rcUp.top    = (int)(rcDown.top  + rcDown.Height() * 0.2);

⌨️ 快捷键说明

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