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

📄 customtoolview.cpp

📁 在编写图形程序
💻 CPP
字号:
// CustomToolView.cpp : implementation of the CCustomToolView class
//

#include "stdafx.h"
#include "CustomTool.h"

#include "CustomToolDoc.h"
#include "CustomToolView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CCustomToolView

IMPLEMENT_DYNCREATE(CCustomToolView, CFODrawView)
BEGIN_MESSAGE_MAP(CCustomToolView,CFODrawView)
	//{{AFX_MSG_MAP(CCustomToolView)
	ON_COMMAND(ID_DRAW_TOOL1, OnDrawTool1)
	ON_UPDATE_COMMAND_UI(ID_DRAW_TOOL1, OnUpdateDrawTool1)
	ON_COMMAND(ID_DRAW_TOOL2, OnDrawTool2)
	ON_UPDATE_COMMAND_UI(ID_DRAW_TOOL2, OnUpdateDrawTool2)
	ON_COMMAND(ID_DRAW_TOOL3, OnDrawTool3)
	ON_UPDATE_COMMAND_UI(ID_DRAW_TOOL3, OnUpdateDrawTool3)
	ON_COMMAND(ID_DRAW_TOOL4, OnDrawTool4)
	ON_UPDATE_COMMAND_UI(ID_DRAW_TOOL4, OnUpdateDrawTool4)
	ON_COMMAND(ID_DRAW_TOOL5, OnDrawTool5)
	ON_UPDATE_COMMAND_UI(ID_DRAW_TOOL5, OnUpdateDrawTool5)
	ON_COMMAND(ID_DRAW_TOOL6, OnDrawTool6)
	ON_UPDATE_COMMAND_UI(ID_DRAW_TOOL6, OnUpdateDrawTool6)
	ON_COMMAND(ID_DRAW_TOOL7, OnDrawTool7)
	ON_UPDATE_COMMAND_UI(ID_DRAW_TOOL7, OnUpdateDrawTool7)
	ON_COMMAND(ID_DRAW_TOOL8, OnDrawTool8)
	ON_UPDATE_COMMAND_UI(ID_DRAW_TOOL8, OnUpdateDrawTool8)
	ON_COMMAND(ID_DRAW_TOOL9, OnDrawTool9)
	ON_UPDATE_COMMAND_UI(ID_DRAW_TOOL9, OnUpdateDrawTool9)
	ON_COMMAND(ID_DRAW_TOOL10, OnDrawTool10)
	ON_UPDATE_COMMAND_UI(ID_DRAW_TOOL10, OnUpdateDrawTool10)
	//}}AFX_MSG_MAP
	ON_UPDATE_COMMAND_UI(ID_FO_INDEX_WIDTH, OnUpdatePosition)
	ON_UPDATE_COMMAND_UI(ID_FO_INDEX_HEIGHT, OnUpdateWidth)
	ON_COMMAND(ID_FILE_PRINT, CFODrawView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CFODrawView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFODrawView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCustomToolView construction/destruction

CCustomToolView::CCustomToolView()
{
	// TODO: add construction code here
	m_bCenter = FALSE;
}

CCustomToolView::~CCustomToolView()
{
}

BOOL CCustomToolView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREAFOAPPWIZARDRUCT cs
	return CFODrawView::PreCreateWindow(cs);

}

/////////////////////////////////////////////////////////////////////////////
// CCustomToolView drawing

void CCustomToolView::OnDraw(CDC* pDC)
{
	CCustomToolDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	Draw(pDC);
	// TODO: add draw code for native data here
}

void CCustomToolView::OnInitialUpdate()
{
	SetCurrentModel(GetDocument()->m_pDataModel);
	CFODrawView::OnInitialUpdate();

}

/////////////////////////////////////////////////////////////////////////////
// CCustomToolView printing

BOOL CCustomToolView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return CFODrawView::OnPreparePrinting(pInfo);
}

void CCustomToolView::OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo)
{
	// TODO: add extra initialization before printing
	// Form++ Library Add line.
	CFODrawView::OnBeginPrinting(pDC,pInfo);
}

void CCustomToolView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CCustomToolView diagnostics

#ifdef _DEBUG
void CCustomToolView::AssertValid() const
{
//Form++ Library add lines.
	CFODrawView::AssertValid();


	//CView::AssertValid();
}

void CCustomToolView::Dump(CDumpContext& dc) const
{
//Form++ Library add lines.
	CFODrawView::Dump(dc);


	//CView::Dump(dc);
}

CCustomToolDoc* CCustomToolView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCustomToolDoc)));
	return (CCustomToolDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CCustomToolView message handlers
//Form++ Library add line.
void CCustomToolView::OnPrint(CDC* pDC, CPrintInfo* pInfo) 
{
	// TODO: Add your specialized code here and/or call the base class
	
	CFODrawView::OnPrint(pDC, pInfo);
}


void CCustomToolView::OnDrawTool1() 
{
	// TODO: Add your command handler code here
	StartCustomShapeID(IDR_COMPSRES1);

}

void CCustomToolView::OnUpdateDrawTool1(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	BOOL bDesign = GetCurrentModel()->IsDesignMode();
	pCmdUI->Enable(bDesign);

	pCmdUI->SetCheck(m_drawshape == FO_COMP_COMPOSITE && m_nCurShapeResID == IDR_COMPSRES1);

}

void CCustomToolView::OnDrawTool2() 
{
	// TODO: Add your command handler code here
	StartCustomShapeID(IDR_COMPSRES2);

}

void CCustomToolView::OnUpdateDrawTool2(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	BOOL bDesign = GetCurrentModel()->IsDesignMode();
	pCmdUI->Enable(bDesign);

	pCmdUI->SetCheck(m_drawshape == FO_COMP_COMPOSITE && m_nCurShapeResID == IDR_COMPSRES2);

}

void CCustomToolView::OnDrawTool3() 
{
	// TODO: Add your command handler code here
	StartCustomShapeID(IDR_COMPSRES3);

}

void CCustomToolView::OnUpdateDrawTool3(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	BOOL bDesign = GetCurrentModel()->IsDesignMode();
	pCmdUI->Enable(bDesign);

	pCmdUI->SetCheck(m_drawshape == FO_COMP_COMPOSITE && m_nCurShapeResID == IDR_COMPSRES3);

}

void CCustomToolView::OnDrawTool4() 
{
	// TODO: Add your command handler code here
	StartCustomShapeID(IDR_COMPSRES4);

}

void CCustomToolView::OnUpdateDrawTool4(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	BOOL bDesign = GetCurrentModel()->IsDesignMode();
	pCmdUI->Enable(bDesign);

	pCmdUI->SetCheck(m_drawshape == FO_COMP_COMPOSITE && m_nCurShapeResID == IDR_COMPSRES4);

}

void CCustomToolView::OnDrawTool5() 
{
	// TODO: Add your command handler code here
	StartCustomShapeID(IDR_COMPSRES5);

}

void CCustomToolView::OnUpdateDrawTool5(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	BOOL bDesign = GetCurrentModel()->IsDesignMode();
	pCmdUI->Enable(bDesign);

	pCmdUI->SetCheck(m_drawshape == FO_COMP_COMPOSITE && m_nCurShapeResID == IDR_COMPSRES5);

}

void CCustomToolView::OnDrawTool6() 
{
	// TODO: Add your command handler code here
	StartCustomShapeID(IDR_COMPSRES6);

}

void CCustomToolView::OnUpdateDrawTool6(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	BOOL bDesign = GetCurrentModel()->IsDesignMode();
	pCmdUI->Enable(bDesign);

	pCmdUI->SetCheck(m_drawshape == FO_COMP_COMPOSITE && m_nCurShapeResID == IDR_COMPSRES6);

}

void CCustomToolView::OnDrawTool7() 
{
	// TODO: Add your command handler code here
	StartCustomShapeID(IDR_COMPSRES7);

}

void CCustomToolView::OnUpdateDrawTool7(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	BOOL bDesign = GetCurrentModel()->IsDesignMode();
	pCmdUI->Enable(bDesign);

	pCmdUI->SetCheck(m_drawshape == FO_COMP_COMPOSITE && m_nCurShapeResID == IDR_COMPSRES7);

}

void CCustomToolView::OnDrawTool8() 
{
	// TODO: Add your command handler code here
	StartCustomShapeID(IDR_COMPSRES8);

}

void CCustomToolView::OnUpdateDrawTool8(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	BOOL bDesign = GetCurrentModel()->IsDesignMode();
	pCmdUI->Enable(bDesign);

	pCmdUI->SetCheck(m_drawshape == FO_COMP_COMPOSITE && m_nCurShapeResID == IDR_COMPSRES8);

}

void CCustomToolView::OnDrawTool9() 
{
	// TODO: Add your command handler code here
	StartCustomShapeID(IDR_COMPSRES9);

}

void CCustomToolView::OnUpdateDrawTool9(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	BOOL bDesign = GetCurrentModel()->IsDesignMode();
	pCmdUI->Enable(bDesign);

	pCmdUI->SetCheck(m_drawshape == FO_COMP_COMPOSITE && m_nCurShapeResID == IDR_COMPSRES9);

}

void CCustomToolView::OnDrawTool10() 
{
	// TODO: Add your command handler code here
	StartCustomShapeID(IDR_COMPSRES10);

}

void CCustomToolView::OnUpdateDrawTool10(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	BOOL bDesign = GetCurrentModel()->IsDesignMode();
	pCmdUI->Enable(bDesign);
	
	pCmdUI->SetCheck(m_drawshape == FO_COMP_COMPOSITE && m_nCurShapeResID == IDR_COMPSRES10);
	
}

void CCustomToolView::GeneratePosString(CString &strText,int left,int top)
{
	CFOScaleUint m_Uint;
	double dLeftValue = m_Uint.ConvertLogPointTo(FUNIT_MM,left);
	double dTopValue = m_Uint.ConvertLogPointTo(FUNIT_MM,top,TRUE);
	strText.Format(_T(" %.3f, %.3f"), dLeftValue,dTopValue);
}

void CCustomToolView::GenerateSizeString(CString &strText,int width,int height)
{
	CFOScaleUint m_Uint;
	double dWValue = m_Uint.ConvertLogPointTo(FUNIT_MM,width);
	double dHValue = m_Uint.ConvertLogPointTo(FUNIT_MM,height,TRUE);
	strText.Format(_T("%.3f, %.3f"),dWValue,dHValue);
}


void CCustomToolView::OnUpdatePosition(CCmdUI *pCmdUI)
{
	if(m_pCurDropShapesList.GetCount() >0)
	{
		CRect rc = GetShapesMaxRect(&m_pCurDropShapesList);
		CString strFormat;
		GeneratePosString(strFormat,rc.left,rc.top);
		pCmdUI->SetText(strFormat);
		return;
	}

	if(m_listSelectComp.GetCount() == 1)
	{
		CFODrawShape *pObj = (CFODrawShape *)GetCurrentSelectShape();
		if(pObj != NULL)
		{
			CRect rc = pObj->GetPrevRect();
			CString strFormat;
			GeneratePosString(strFormat,rc.left,rc.top);
			pCmdUI->SetText(strFormat);
		}
	}
	else if(m_listSelectComp.GetCount() == 0)
	{
		if(GetCurrentModel()->IsFormMode())
		{
			if(GetCurrentModel()->IsFormFreeSize())
			{
				if(GetCurrentModel()->GetSizeFormShape() != NULL)
				{
					CRect rc = GetCurrentModel()->GetSizeFormShape()->GetPrevRect();
					if(rc.left < -1000 && rc.top < -1000)
					{
						rc = GetCurrentModel()->GetSizeFormShape()->GetRect();
					}
					CString strFormat;
					GeneratePosString(strFormat,rc.left,rc.top);
					pCmdUI->SetText(strFormat);
				}
			}
		}
		else
		{
			CString strFormat;
			GeneratePosString(strFormat,0,0);
			pCmdUI->SetText(strFormat);
		}
	}
	else if(m_listSelectComp.GetCount()>1)
	{
		CRect rcReturn = GetMaxPosition();
		CRect rc = rcReturn;
		CString strFormat;
		GeneratePosString(strFormat,0,0);
		pCmdUI->SetText(strFormat);
	}
}

void CCustomToolView::OnUpdateWidth(CCmdUI *pCmdUI)
{
	if(m_pCurDropShapesList.GetCount() >0)
	{
		CRect rc = GetShapesMaxRect(&m_pCurDropShapesList);
		CString strFormat;
		GenerateSizeString(strFormat,rc.Width(),rc.Height());
		pCmdUI->SetText(strFormat);
		return;
	}

	if(m_listSelectComp.GetCount() == 1)
	{
		CFODrawShape *pObj = (CFODrawShape *)GetCurrentSelectShape();
		if(pObj != NULL)
		{
			CRect rc = pObj->GetPrevRect();
			CString strFormat;
			GenerateSizeString(strFormat,rc.Width(),rc.Height());
			pCmdUI->SetText(strFormat);
		}
	}
	else if(m_listSelectComp.GetCount() == 0)
	{
		if(GetCurrentModel()->IsFormMode())
		{
			if(GetCurrentModel()->IsFormFreeSize())
			{
				if(GetCurrentModel()->GetSizeFormShape() != NULL)
				{
					CRect rc = GetCurrentModel()->GetSizeFormShape()->GetPrevRect();
					if(rc.left < -1000 && rc.top < -1000)
					{
						rc = GetCurrentModel()->GetSizeFormShape()->GetRect();
					}
					CString strFormat;
					GenerateSizeString(strFormat,rc.Width(),rc.Height());
					pCmdUI->SetText(strFormat);
				}
			}
		}
		else
		{
			CRect rcPos = GetCurrentModel()->GetPagePosition();
			CString strFormat;
			GenerateSizeString(strFormat,rcPos.Width(),rcPos.Height());
			pCmdUI->SetText(strFormat);
		}	
	}
	else if(m_listSelectComp.GetCount() > 1)
	{
		CRect rcReturn = GetMaxPosition();
		CRect rc = rcReturn;
		CString strFormat;
		GenerateSizeString(strFormat,rc.Width(),rc.Height());
		pCmdUI->SetText(strFormat);
	}
}

⌨️ 快捷键说明

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