📄 drawchipview.cpp
字号:
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 + -