📄 customtoolview.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 + -