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

📄 drawchipview.cpp

📁 本人买的<<VC++项目开发实例>>源代码配套光盘.
💻 CPP
📖 第 1 页 / 共 5 页
字号:
			pResistor = (CResistor *)pObject;
			ht = pResistor->m_RectTracker.HitTest(point);
			*pIsSel = pResistor->GetIsSelected();			
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CCompacity)))
		{
			pCompacity = (CCompacity *)pObject;
			ht = pCompacity->m_RectTracker.HitTest(point);
			*pIsSel = pCompacity->GetIsSelected();			
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CSwitch)))
		{
			pSwitch = (CSwitch *)pObject;
			ht = pSwitch->m_RectTracker.HitTest(point);
			*pIsSel = pSwitch->GetIsSelected();			
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CDiode)))
		{
			pDiode = (CDiode *)pObject;
			ht = pDiode->m_RectTracker.HitTest(point);
			*pIsSel = pDiode->GetIsSelected();			
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CInductor)))
		{
			pInductor = (CInductor *)pObject;
			ht = pInductor->m_RectTracker.HitTest(point);
			*pIsSel = pInductor->GetIsSelected();			
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CPower)))
		{
			pPower = (CPower *)pObject;
			ht = pPower->m_RectTracker.HitTest(point);
			*pIsSel = pPower->GetIsSelected();			
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CIcChip)))
		{
			pIcChip = (CIcChip *)pObject;
			ht = pIcChip->m_RectTracker.HitTest(point);
			*pIsSel = pIcChip->GetIsSelected();			
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CPaSocket)))
		{
			pPaSocket = (CPaSocket *)pObject;
			ht = pPaSocket->m_RectTracker.HitTest(point);
			*pIsSel = pPaSocket->GetIsSelected();			
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CCrSocket)))
		{
			pCrSocket = (CCrSocket *)pObject;
			ht = pCrSocket->m_RectTracker.HitTest(point);
			*pIsSel = pCrSocket->GetIsSelected();			
		}

		if (pObject->IsKindOf(RUNTIME_CLASS(CTransistor)))
		{
			pTransistor = (CTransistor *)pObject;
			ht = pTransistor->m_RectTracker.HitTest(point);
			*pIsSel = pTransistor->GetIsSelected();			
		}


		if (ht != CRectTracker::hitNothing)
		{
			return TRUE;
		}
		else
		{
			pObList->GetPrev(pos);
		}
	}
	return FALSE;

}

//##ModelId=3E18E0DE01EA
int CDrawChipView::BeSelectedNum(CObList *pObList)
//当前链表中处于选中状态的对象个数
{
	POSITION pos = pObList->GetHeadPosition();
	CObject *pObject;
	CResistor *pResistor;
	CCompacity *pCompacity;
	CSwitch *pSwitch;
	CDiode *pDiode;
	CInductor *pInductor;
	CPower *pPower;
	CIcChip *pIcChip;
	CPaSocket *pPaSocket;
	CCrSocket *pCrSocket;
	CTransistor *pTransistor;

	int num = 0;
	while(pos!=NULL)
	{
		pObject = pObList->GetAt(pos);
		if (pObject->IsKindOf(RUNTIME_CLASS(CResistor)))
		{
			pResistor = (CResistor *)pObject;
			if (pResistor->GetIsSelected())
				num++;	
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CCompacity)))
		{
			pCompacity = (CCompacity *)pObject;
			if (pCompacity->GetIsSelected())
				num++;	
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CSwitch)))
		{
			pSwitch = (CSwitch *)pObject;
			if (pSwitch->GetIsSelected())
				num++;	
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CDiode)))
		{
			pDiode = (CDiode *)pObject;
			if (pDiode->GetIsSelected())
				num++;	
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CInductor)))
		{
			pInductor = (CInductor *)pObject;
			if (pInductor->GetIsSelected())
				num++;	
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CPower)))
		{
			pPower = (CPower *)pObject;
			if (pPower->GetIsSelected())
				num++;	
		}

		if (pObject->IsKindOf(RUNTIME_CLASS(CIcChip)))
		{
			pIcChip = (CIcChip*)pObject;
			if (pIcChip->GetIsSelected())
				num++;	
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CPaSocket)))
		{
			pPaSocket = (CPaSocket*)pObject;
			if (pPaSocket->GetIsSelected())
				num++;	
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CCrSocket)))
		{
			pCrSocket = (CCrSocket*)pObject;
			if (pCrSocket->GetIsSelected())
				num++;	
		}
		if (pObject->IsKindOf(RUNTIME_CLASS(CTransistor)))
		{
			pTransistor= (CTransistor*)pObject;
			if (pTransistor->GetIsSelected())
				num++;	
		}

		pObList->GetNext(pos);
	}
	return num;
}

//##ModelId=3C466BA0022E
void CDrawChipView::OnDrawResistor() 
{
	// TODO: Add your command handler code here
	m_bResistor = TRUE;
	m_bPower = FALSE;
	m_bCompacity = FALSE;
	m_bNothing = FALSE;
	m_bTransistor = FALSE;
	m_bSwitch = FALSE;
	m_bDiode = FALSE;
	m_bInductor = FALSE;
	m_bIcChip = FALSE;
	m_bPaSocket = FALSE;
	m_bCrSocket = FALSE;
	LONG Cur; 
	
	Cur = (LONG)((CDrawChipApp*)AfxGetApp())->LoadCursor(IDC_DRAW_RESISTOR);	
	ASSERT(Cur);
	::SetClassLong(this->m_hWnd,GCL_HCURSOR,Cur);

	//::SetCursor(Cur);

	//InvalidateRect(pResistor->m_Rect);
	
}


//##ModelId=3C466BA1004E
void CDrawChipView::OnDrawDiode() 
{
	// TODO: Add your command handler code here
	m_bDiode = TRUE;
	m_bSwitch = FALSE;
	m_bResistor = FALSE;
	m_bPower = FALSE;
	m_bCompacity = FALSE;
	m_bNothing = FALSE;
	m_bTransistor = FALSE;
	m_bInductor = FALSE;
	m_bIcChip = FALSE;
	m_bPaSocket = FALSE;
	m_bCrSocket = FALSE;
	LONG Cur; 
	
	Cur = (LONG)((CDrawChipApp*)AfxGetApp())->LoadCursor(IDC_DRAW_DIODE);	
	ASSERT(Cur);
	::SetClassLong(this->m_hWnd,GCL_HCURSOR,Cur);
}

//##ModelId=3C466BA10243
void CDrawChipView::OnDrawInductor() 
{
	// TODO: Add your command handler code here
	m_bInductor = TRUE;
	m_bDiode = FALSE;
	m_bSwitch = FALSE;
	m_bResistor = FALSE;
	m_bPower = FALSE;
	m_bCompacity = FALSE;
	m_bNothing = FALSE;
	m_bTransistor = FALSE;	
	m_bIcChip = FALSE;
	m_bPaSocket = FALSE;
	m_bCrSocket = FALSE;
	LONG Cur; 
	
	Cur = (LONG)((CDrawChipApp*)AfxGetApp())->LoadCursor(IDC_DRAW_INDUCTOR);	
	ASSERT(Cur);
	::SetClassLong(this->m_hWnd,GCL_HCURSOR,Cur);	
}

//##ModelId=3C466BA20046
void CDrawChipView::OnDrawPower() 
{
	// TODO: Add your command handler code here
	m_bPower = TRUE;
	m_bResistor = FALSE;
	m_bTransistor = FALSE;
	m_bNothing = FALSE;
	m_bDiode = FALSE;
	m_bInductor = FALSE;
	m_bCompacity = FALSE;
	m_bSwitch = FALSE;
	m_bIcChip = FALSE;
	m_bPaSocket = FALSE;
	m_bCrSocket = FALSE;
	LONG Cur; 
	
	Cur = (LONG)((CDrawChipApp*)AfxGetApp())->LoadCursor(IDC_DRAW_POWER);	
	ASSERT(Cur);
	::SetClassLong(this->m_hWnd,GCL_HCURSOR,Cur);
}

//##ModelId=3C466BA20245
void CDrawChipView::OnDrawTrasistor() 
{
	// TODO: Add your command handler code here
	m_bTransistor = TRUE;
	m_bPower = FALSE;
	m_bResistor = FALSE;	
	m_bCompacity = FALSE;
	m_bNothing = FALSE;	
	m_bInductor = FALSE;
	m_bIcChip = FALSE;
	m_bDiode = FALSE;
	m_bPaSocket = FALSE;
	m_bCrSocket = FALSE;
	m_bSwitch = FALSE;
	LONG Cur; 
	
	Cur = (LONG)((CDrawChipApp*)AfxGetApp())->LoadCursor(IDC_DRAW_TRANSISTOR);	
	ASSERT(Cur);
	::SetClassLong(this->m_hWnd,GCL_HCURSOR,Cur);
}

//##ModelId=3C466BA3003D
void CDrawChipView::OnDrawChip() 
{
	// TODO: Add your command handler code here
	m_bIcChip = TRUE;
	m_bCompacity = FALSE;
	m_bResistor = FALSE;
	m_bPower = FALSE;
	m_bNothing = FALSE;
	m_bTransistor = FALSE;
	m_bSwitch = FALSE;
	m_bDiode = FALSE;
	m_bInductor = FALSE;
	m_bPaSocket = FALSE;
	m_bCrSocket = FALSE;
	LONG Cur; 
	
	Cur = (LONG)((CDrawChipApp*)AfxGetApp())->LoadCursor(IDC_DRAW_ICCHIP);	
	ASSERT(Cur);
	::SetClassLong(this->m_hWnd,GCL_HCURSOR,Cur);	
}

//##ModelId=3C466BA3020A
void CDrawChipView::OnDrawCrossSocket() 
{
	// TODO: Add your command handler code here
	m_bCrSocket = TRUE;
	m_bIcChip = FALSE;
	m_bCompacity = FALSE;
	m_bResistor = FALSE;
	m_bPower = FALSE;
	m_bNothing = FALSE;
	m_bTransistor = FALSE;
	m_bSwitch = FALSE;
	m_bDiode = FALSE;
	m_bInductor = FALSE;
	m_bPaSocket = FALSE;
	LONG Cur; 
	
	Cur = (LONG)((CDrawChipApp*)AfxGetApp())->LoadCursor(IDC_DRAW_CRSOCKET);	
	ASSERT(Cur);
	::SetClassLong(this->m_hWnd,GCL_HCURSOR,Cur);		
}

//##ModelId=3C466BA303E1
void CDrawChipView::OnDrawParallelSocket() 
{
	// TODO: Add your command handler code here
	m_bPaSocket = TRUE;
	m_bSwitch = FALSE;
	m_bResistor = FALSE;
	m_bPower = FALSE;
	m_bCompacity = FALSE;
	m_bNothing = FALSE;
	m_bTransistor = FALSE;	
	m_bDiode = FALSE;
	m_bInductor = FALSE;
	m_bIcChip = FALSE;
	m_bCrSocket = FALSE;
	LONG Cur; 
	
	Cur = (LONG)((CDrawChipApp*)AfxGetApp())->LoadCursor(IDC_DRAW_PASOCKET);	
	ASSERT(Cur);
	::SetClassLong(this->m_hWnd,GCL_HCURSOR,Cur);	
}

//##ModelId=3C466BA401BB
void CDrawChipView::OnDrawSwitch() 
{
	// TODO: Add your command handler code here
	m_bSwitch = TRUE;
	m_bResistor = FALSE;
	m_bPower = FALSE;
	m_bCompacity = FALSE;
	m_bNothing = FALSE;
	m_bTransistor = FALSE;	
	m_bDiode = FALSE;
	m_bInductor = FALSE;
	m_bIcChip = FALSE;
	m_bPaSocket = FALSE;
	m_bCrSocket = FALSE;
	LONG Cur; 
	
	Cur = (LONG)((CDrawChipApp*)AfxGetApp())->LoadCursor(IDC_DRAW_SWITCH);	
	ASSERT(Cur);
	::SetClassLong(this->m_hWnd,GCL_HCURSOR,Cur);
}




//##ModelId=3C466BA4036A
void CDrawChipView::OnDrawCompacity() 
{
	// TODO: Add your command handler code here
	m_bCompacity = TRUE;
	m_bResistor = FALSE;
	m_bPower = FALSE;
	m_bNothing = FALSE;
	m_bTransistor = FALSE;
	m_bSwitch = FALSE;
	m_bDiode = FALSE;
	m_bInductor = FALSE;
	m_bIcChip = FALSE;
	m_bPaSocket = FALSE;
	m_bCrSocket = FALSE;
	LONG Cur; 
	
	Cur = (LONG)((CDrawChipApp*)AfxGetApp())->LoadCursor(IDC_DRAW_COMPACITY);	
	ASSERT(Cur);
	::SetClassLong(this->m_hWnd,GCL_HCURSOR,Cur);
}

//##ModelId=3E18E0D900A0
void CDrawChipView::OnPrepareDC(CDC* pDC, CPrintInfo* pInfo) 
{
	// TODO: Add your specialized code here and/or call the base class
	/*
	CRect rectClient;
	GetClientRect(rectClient);
	pDC->SetMapMode(MM_HIMETRIC);	
	pDC->SetViewportExt(rectClient.right,rectClient.bottom );
	pDC->SetViewportOrg((int)(rectClient.Width()*0.2),-(int)(rectClient.Height()*0.1));
	*/
	
	CScrollView::OnPrepareDC(pDC, pInfo);
}

//##ModelId=3C466BA50126
void CDrawChipView::OnMouseMove(UINT nFlags, CPoint point) 
{
	// TODO: Add your message handler code here and/or call default
	/*当鼠标在绘制区移动时,在状态栏中显示坐标值*/
	CClientDC dc(this);
 	OnPrepareDC(&dc,NULL);
	dc.DPtoLP(&point);
	char text[128];
	CStatusBar* pStatus = (CStatusBar*)
	AfxGetApp()->m_pMainWnd->GetDescendantWindow(ID_VIEW_STATUS_BAR);
	if(pStatus) 
	{
		sprintf(text,"逻辑坐标 X = %4d;Y = %4d",point.x,point.y);
		pStatus->SetPaneText(1,text);
	}		
	/*------------------------------------------*/
	CScrollView::OnMouseMove(nFlags, point);
}

//##ModelId=3C466BA502C1
void CDrawChipView::OnUpdateDrawResistor(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here	
	pCmdUI->SetCheck(m_bResistor);
}

//##ModelId=3C466BA6006A
void CDrawChipView::OnUpdateDrawPower(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->SetCheck(m_bPower);
	
}

//##ModelId=3C466BA60204
void CDrawChipView::OnDrawNothing() 
{
	// TODO: Add your command handler code here
	m_bNothing = TRUE;
	m_bResistor = FALSE;
	m_bPower = FALSE;
	m_bTransistor = FALSE;
	m_bCompacity = FALSE;

⌨️ 快捷键说明

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