📄 paintdoc.cpp
字号:
// paintdoc.cpp : implementation of the CPaintobjDoc class
//
#include "stdafx.h"
#include "const.h"
#include "painted.h"
#include "paintobj.h"
#include "paintdoc.h"
#include "line.h"
#include "square.h"
#include "circle.h"
#include "SearchPath.h"
#include "SearchNode.h"
#include "paintvw.h"
#include "Node.h"
#include "ArcPath.h"
#include "LinePath.h"
#include "InputLineStartNode.h"
#include "InputLineStartEndNode.h"
#include "mainfrm.h"
#include "InputArcRadius.h"
#include "InputArcStartNode.h"
#include "InputArcStartEndNode.h"
#include "MyFileDialog.h"
#include "MyFileDialog1.h"
#include "LazysAngleDlg.h"
#include "LazysStartnodeAngleDlg.h"
#include "LazysStartEndnodeAngleDlg.h"
#include "ScpAngleDlg.h"
#include "ScpStartnodeAngleDlg.h"
#include "ScpStartEndnodeAngleDlg.h"
#include "SideStartnodeDlg.h"
#include "SideStartEndnode.h"
#include "ChordRadiusDlg.h"
#include "ChordRadiusStartEndDlg.h"
#include "ChordRadiusStartnodeDlg.h"
#include "PieRadiusDlg.h"
#include "PieRadiusStartEndDlg.h"
#include "PieRadiusStartnodeDlg.h"
#include "EllipseStartEndnodeDlg.h"
#include "RectStartEndnodeDlg.h"
#include "RoundrectHeightWideDlg.h"
#include "RoundrectHeightWideRectDlg.h"
#include "PaintLazys.h"
#include "PaintChord.h"
#include "PaintPie.h"
#include "PaintPolygon.h"
#include "PaintRoundrect.h"
#include "PaintScp.h"
#include "PaintSide.h"
#include "PolygonallDlg.h"
#include "SideAngleDlg.h"
#include "LazysPath.h"
#include <assert.h>
#ifdef _DEBUG
#undef THIS_FILE
static char BASED_CODE THIS_FILE[] = __FILE__;
#endif
extern int m_wscreen;//客户区宽度(逻辑坐标)
extern int m_hscreen;//客户区高度(逻辑坐标)
extern double fscale;
extern double fbasicscale;
extern double fxmin;
extern double fymin;
extern double fxmax;
extern double fymax;
extern double m_xstart;
extern double m_ystart;
extern void DPtoVP(CPnt pnt,CPoint& point);
extern void VPtoDP(CPoint point,CPnt& pnt);
/////////////////////////////////////////////////////////////////////////////
// CPaintobjDoc
IMPLEMENT_DYNCREATE(CPaintobjDoc, CDocument)
BEGIN_MESSAGE_MAP(CPaintobjDoc, CDocument)
//{{AFX_MSG_MAP(CPaintobjDoc)
ON_COMMAND(ID_TOOL_SELECTOR, OnToolSelector)
ON_COMMAND(ID_VIEW_ZOOMIN, OnViewZoomin)
ON_UPDATE_COMMAND_UI(ID_VIEW_ZOOMIN, OnUpdateViewZoomin)
ON_COMMAND(ID_VIEW_ZOOMOUT, OnViewZoomout)
ON_UPDATE_COMMAND_UI(ID_VIEW_ZOOMOUT, OnUpdateViewZoomout)
ON_COMMAND(ID_OUTPUT_SAVEOUTDATA, OnOutputSaveoutdata)
ON_COMMAND(ID_TOOL_CLOCKWISEARC, OnToolClockwisearc)
ON_COMMAND(ID_TOOL_ANTICLOCKWISEARC, OnToolAnticlockwisearc)
ON_UPDATE_COMMAND_UI(ID_VIEW_MOVE, OnUpdateViewMove)
ON_COMMAND(ID_VIEW_MOVE, OnViewMove)
ON_COMMAND(ID_SELECT_TANGENCY, OnSelectTangency)
ON_UPDATE_COMMAND_UI(ID_SELECT_TANGENCY, OnUpdateSelectTangency)
ON_COMMAND(ID_SELECT_NOTTANGENCY, OnSelectNottangency)
ON_UPDATE_COMMAND_UI(ID_SELECT_NOTTANGENCY, OnUpdateSelectNottangency)
ON_COMMAND(ID_TOOL_LINE_NORMAL, OnToolLineNormal)
ON_COMMAND(ID_TOOL_LINE_STARTNODE, OnToolLineStartnode)
ON_COMMAND(ID_TOOL_CLOCKWISE_NORMAL, OnToolClockwiseNormal)
ON_COMMAND(ID_TOOL_CLOCKWISE_RADIUS, OnToolClockwiseRadius)
ON_COMMAND(ID_TOOL_CLOCKWISE_STARTENDNODE, OnToolClockwiseStartendnode)
ON_COMMAND(ID_TOOL_CLOCKWISE_STARTNODE, OnToolClockwiseStartnode)
ON_COMMAND(ID_TOOL_ANTICLOCKWISE_NORMAL, OnToolAnticlockwiseNormal)
ON_COMMAND(ID_TOOL_ANTICLOCKWISE_RADIUS, OnToolAnticlockwiseRadius)
ON_COMMAND(ID_TOOL_ANTICLOCKWISE_STARTENDNODE, OnToolAnticlockwiseStartendnode)
ON_COMMAND(ID_TOOL_ANTICLOCKWISE_STARTNODE, OnToolAnticlockwiseStartnode)
ON_COMMAND(ID_TOOL_LINE_ANGLELENGTH, OnToolLineAnglelength)
ON_COMMAND(ID_TOOL_LINE_STARTENDNODE, OnToolLineStartendnode)
ON_COMMAND(ID_TOOL_CHORD_NORMAL, OnToolChordNormal)
ON_COMMAND(ID_TOOL_CHORD_RADIUS, OnToolChordRadius)
ON_COMMAND(ID_TOOL_CHORD_STARTENDNODE, OnToolChordStartendnode)
ON_COMMAND(ID_TOOL_CHORD_STARTNODE, OnToolChordStartnode)
ON_COMMAND(ID_TOOL_ELLIPSE_NORMAL, OnToolEllipseNormal)
ON_COMMAND(ID_TOOL_ELLIPSE_STARTENDNODE, OnToolEllipseStartendnode)
ON_COMMAND(ID_TOOL_LAZYS_ANGLE, OnToolLazysAngle)
ON_COMMAND(ID_TOOL_LAZYS_ANGLESTARTENDNODE, OnToolLazysAnglestartendnode)
ON_COMMAND(ID_TOOL_LAZYS_ANGLESTARTNODE, OnToolLazysAnglestartnode)
ON_COMMAND(ID_TOOL_PIE_NORMAL, OnToolPieNormal)
ON_COMMAND(ID_TOOL_PIE_RADIUS, OnToolPieRadius)
ON_COMMAND(ID_TOOL_PIE_STARTENDNODE, OnToolPieStartendnode)
ON_COMMAND(ID_TOOL_PIE_STARTNODE, OnToolPieStartnode)
ON_COMMAND(ID_TOOL_POLYGON_ALLNODE, OnToolPolygonAllnode)
ON_COMMAND(ID_TOOL_POLYGON_NORMAL, OnToolPolygonNormal)
ON_COMMAND(ID_TOOL_RECT_NORMAL, OnToolRectNormal)
ON_COMMAND(ID_TOOL_RECT_STARTENDNODE, OnToolRectStartendnode)
ON_COMMAND(ID_TOOL_ROUNDRECT_ELLIPSE, OnToolRoundrectEllipse)
ON_COMMAND(ID_TOOL_ROUNDRECT_ELLIPSESTARTENDNODE, OnToolRoundrectEllipsestartendnode)
ON_COMMAND(ID_TOOL_SCP_ANGLE, OnToolScpAngle)
ON_COMMAND(ID_TOOL_SCP_ANGLESTARTENDNODE, OnToolScpAnglestartendnode)
ON_COMMAND(ID_TOOL_SCP_ANGLESTARTNODE, OnToolScpAnglestartnode)
ON_COMMAND(ID_TOOL_SIDE_NORMAL, OnToolSideNormal)
ON_COMMAND(ID_TOOL_SIDE_STARTENDNODE, OnToolSideStartendnode)
ON_COMMAND(ID_TOOL_SIDE_STARTNODE, OnToolSideStartnode)
ON_UPDATE_COMMAND_UI(ID_TOOL_SELECTOR, OnUpdateToolCheck)
ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
ON_COMMAND(ID_TOOL_BUILDING_ANTICLOCKWISE_NORMAL, OnToolBuildingAnticlockwiseNormal)
ON_COMMAND(ID_TOOL_BUILDING_ANTICLOCKWISE_RADIUS, OnToolBuildingAnticlockwiseRadius)
ON_COMMAND(ID_TOOL_BUILDING_ANTICLOCKWISE_STARTENDNODE, OnToolBuildingAnticlockwiseStartendnode)
ON_COMMAND(ID_TOOL_BUILDING_ANTICLOCKWISE_STARTNODE, OnToolBuildingAnticlockwiseStartnode)
ON_COMMAND(ID_TOOL_BUILDING_CLOCKWISE_NORMAL, OnToolBuildingClockwiseNormal)
ON_COMMAND(ID_TOOL_BUILDING_CLOCKWISE_RADIUS, OnToolBuildingClockwiseRadius)
ON_COMMAND(ID_TOOL_BUILDING_CLOCKWISE_STARTENDNODE, OnToolBuildingClockwiseStartendnode)
ON_COMMAND(ID_TOOL_BUILDING_CLOCKWISE_STARTNODE, OnToolBuildingClockwiseStartnode)
ON_COMMAND(ID_TOOL_BUILDING_LAZYS_ANGLE, OnToolBuildingLazysAngle)
ON_COMMAND(ID_TOOL_BUILDING_LAZYS_ANGLESTARTENDNODE, OnToolBuildingLazysAnglestartendnode)
ON_COMMAND(ID_TOOL_BUILDING_LAZYS_ANGLESTARTNODE, OnToolBuildingLazysAnglestartnode)
ON_COMMAND(ID_TOOL_BUILDING_LINE_NORMAL, OnToolBuildingLineNormal)
ON_COMMAND(ID_TOOL_BUILDING_LINE_STARTENDNODE, OnToolBuildingLineStartendnode)
ON_COMMAND(ID_TOOL_BUILDING_LINE_STARTNODE, OnToolBuildingLineStartnode)
ON_COMMAND(ID_TOOL_DEVICE_ANTICLOCKWISE_NORMAL, OnToolDeviceAnticlockwiseNormal)
ON_COMMAND(ID_TOOL_DEVICE_ANTICLOCKWISE_RADIUS, OnToolDeviceAnticlockwiseRadius)
ON_COMMAND(ID_TOOL_DEVICE_ANTICLOCKWISE_STARTENDNODE, OnToolDeviceAnticlockwiseStartendnode)
ON_COMMAND(ID_TOOL_DEVICE_ANTICLOCKWISE_STARTNODE, OnToolDeviceAnticlockwiseStartnode)
ON_COMMAND(ID_TOOL_DEVICE_CHORD_NORMAL, OnToolDeviceChordNormal)
ON_COMMAND(ID_TOOL_DEVICE_CHORD_RADIUS, OnToolDeviceChordRadius)
ON_COMMAND(ID_TOOL_DEVICE_CHORD_STARTENDNODE, OnToolDeviceChordStartendnode)
ON_COMMAND(ID_TOOL_DEVICE_CHORD_STARTNODE, OnToolDeviceChordStartnode)
ON_COMMAND(ID_TOOL_DEVICE_CLOCKWISE_NORMAL, OnToolDeviceClockwiseNormal)
ON_COMMAND(ID_TOOL_DEVICE_CLOCKWISE_RADIUS, OnToolDeviceClockwiseRadius)
ON_COMMAND(ID_TOOL_DEVICE_CLOCKWISE_STARTENDNODE, OnToolDeviceClockwiseStartendnode)
ON_COMMAND(ID_TOOL_DEVICE_CLOCKWISE_STARTNODE, OnToolDeviceClockwiseStartnode)
ON_COMMAND(ID_TOOL_DEVICE_ELLIPSE_NORMAL, OnToolDeviceEllipseNormal)
ON_COMMAND(ID_TOOL_DEVICE_ELLIPSE_STARTENDNODE, OnToolDeviceEllipseStartendnode)
ON_COMMAND(ID_TOOL_DEVICE_LAZYS_ANGLE, OnToolDeviceLazysAngle)
ON_COMMAND(ID_TOOL_DEVICE_LAZYS_ANGLESTARTENDNODE, OnToolDeviceLazysAnglestartendnode)
ON_COMMAND(ID_TOOL_DEVICE_LAZYS_ANGLESTARTNODE, OnToolDeviceLazysAnglestartnode)
ON_COMMAND(ID_TOOL_DEVICE_LINE_NORMAL, OnToolDeviceLineNormal)
ON_COMMAND(ID_TOOL_DEVICE_LINE_STARTENDNODE, OnToolDeviceLineStartendnode)
ON_COMMAND(ID_TOOL_DEVICE_LINE_STARTNODE, OnToolDeviceLineStartnode)
ON_COMMAND(ID_TOOL_DEVICE_PIE_NORMAL, OnToolDevicePieNormal)
ON_COMMAND(ID_TOOL_DEVICE_PIE_RADIUS, OnToolDevicePieRadius)
ON_COMMAND(ID_TOOL_DEVICE_PIE_STARTENDNODE, OnToolDevicePieStartendnode)
ON_COMMAND(ID_TOOL_DEVICE_PIE_STARTNODE, OnToolDevicePieStartnode)
ON_COMMAND(ID_TOOL_DEVICE_POLYGON_ALLNODE, OnToolDevicePolygonAllnode)
ON_COMMAND(ID_TOOL_DEVICE_POLYGON_NORMAL, OnToolDevicePolygonNormal)
ON_COMMAND(ID_TOOL_DEVICE_RECT_NORMAL, OnToolDeviceRectNormal)
ON_COMMAND(ID_TOOL_DEVICE_RECT_STARTENDNODE, OnToolDeviceRectStartendnode)
ON_COMMAND(ID_TOOL_DEVICE_ROUNDRECT_ELLIPSE, OnToolDeviceRoundrectEllipse)
ON_COMMAND(ID_TOOL_DEVICE_ROUNDRECT_ELLIPSESTARTENDNODE, OnToolDeviceRoundrectEllipsestartendnode)
ON_UPDATE_COMMAND_UI(ID_TOOL_ARC, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_CLOCKWISEARC, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_ANTICLOCKWISEARC, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_LINE_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_LINE_STARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_ANTICLOCKWISE_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_ANTICLOCKWISE_RADIUS, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_ANTICLOCKWISE_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_ANTICLOCKWISE_STARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_CLOCKWISE_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_CLOCKWISE_RADIUS, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_CLOCKWISE_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_CLOCKWISE_STARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_LINE_ANGLELENGTH, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_LINE_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_CHORD_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_CHORD_RADIUS, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_CHORD_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_CHORD_STARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_ELLIPSE_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_ELLIPSE_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_LAZYS_ANGLE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_LAZYS_ANGLESTARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_LAZYS_ANGLESTARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_PIE_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_PIE_RADIUS, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_PIE_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_PIE_STARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_POLYGON_ALLNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_POLYGON_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_RECT_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_RECT_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_ROUNDRECT_ELLIPSE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_ROUNDRECT_ELLIPSESTARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_SCP_ANGLE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_SCP_ANGLESTARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_SCP_ANGLESTARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_SIDE_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_SIDE_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_SIDE_STARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_BUILDING_ANTICLOCKWISE_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_BUILDING_ANTICLOCKWISE_RADIUS, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_BUILDING_ANTICLOCKWISE_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_BUILDING_ANTICLOCKWISE_STARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_BUILDING_CLOCKWISE_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_BUILDING_CLOCKWISE_RADIUS, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_BUILDING_CLOCKWISE_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_BUILDING_CLOCKWISE_STARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_BUILDING_LAZYS_ANGLE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_BUILDING_LAZYS_ANGLESTARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_BUILDING_LAZYS_ANGLESTARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_BUILDING_LINE_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_BUILDING_LINE_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_BUILDING_LINE_STARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_ANTICLOCKWISE_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_ANTICLOCKWISE_RADIUS, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_ANTICLOCKWISE_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_ANTICLOCKWISE_STARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_CHORD_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_CHORD_RADIUS, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_CHORD_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_CHORD_STARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_CLOCKWISE_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_CLOCKWISE_RADIUS, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_CLOCKWISE_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_CLOCKWISE_STARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_ELLIPSE_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_ELLIPSE_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_LAZYS_ANGLE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_LAZYS_ANGLESTARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_LAZYS_ANGLESTARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_LINE_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_LINE_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_LINE_STARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_PIE_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_PIE_RADIUS, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_PIE_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_PIE_STARTNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_POLYGON_ALLNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_POLYGON_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_RECT_NORMAL, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_RECT_STARTENDNODE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_ROUNDRECT_ELLIPSE, OnUpdateToolCheck)
ON_UPDATE_COMMAND_UI(ID_TOOL_DEVICE_ROUNDRECT_ELLIPSESTARTENDNODE, OnUpdateToolCheck)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CPaintobjDoc construction/destruction
CPaintobjDoc::CPaintobjDoc()
{
GraphSelect = NULL;
PointXY = NULL;
ResetAll();
}
CPaintobjDoc::~CPaintobjDoc()
{ fscale=1.0f;//关闭文档变量恢复到初始值
if (m_pSelectedTool != NULL)
delete m_pSelectedTool;
delete []PointXY;//记录多边形顶点的数组指针
delete []GraphSelect;
DeleteContents();
}
BOOL CPaintobjDoc::OnNewDocument()
{
if (m_pSelectedTool != NULL)
delete m_pSelectedTool;
int nItems = m_Objects.GetSize();
for (int i = 0; i < nItems; i++)
{
delete m_Objects[i];
}
m_Objects.RemoveAll();
ResetAll();
fxmin=0;
fymin=0;
m_xstart=0;
m_ystart=0;
fxmax=5;
fymax=5;
fscale=1.0;
if (!CDocument::OnNewDocument())
return FALSE;
UpdateAllViews(NULL);
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CPaintobjDoc serialization
void CPaintobjDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
ar <<fxmin;
ar <<fxmax;
ar <<fymin;
ar <<fymax;
ar <<m_uCurNodeIdMax;
ar <<m_uCurPathIdMax;
}
else
{
ar >>fxmin;
ar >>fxmax;
ar >>fymin;
ar >>fymax;
ar >>m_uCurNodeIdMax;
ar >>m_uCurPathIdMax;
}
m_Objects.Serialize(ar);
}
/////////////////////////////////////////////////////////////////////////////
// CPaintobjDoc diagnostics
#ifdef _DEBUG
void CPaintobjDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CPaintobjDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CPaintobjDoc commands
void CPaintobjDoc::DeleteContents()
{
//清空图形元素集合
int nItems = m_Objects.GetSize();
for (int i = 0; i < nItems; i++)
{
delete m_Objects[i];
}
m_Objects.RemoveAll();
//清空节点库
nItems = m_Objectsnode.GetSize();
for (int ii = 0; ii < nItems; ii++)
{
delete m_Objectsnode[ii];
}
m_Objectsnode.RemoveAll();
//清空路径库
nItems = m_Objectspath.GetSize();
for (int iii = 0; iii < nItems; iii++)
{
delete m_Objectspath[iii];
}
m_Objectspath.RemoveAll();
CDocument::DeleteContents();
}
void CPaintobjDoc::GenerateTool()
{
if(m_pSelectedTool != NULL)
{
delete m_pSelectedTool;
m_pSelectedTool = NULL;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -