📄 2dgraphdoc.cpp
字号:
// 2DGRAPHDoc.cpp : implementation of the CMy2DGRAPHDoc class
//
#include "stdafx.h"
#include "2DGRAPH.h"
#include "2DGRAPHDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMy2DGRAPHDoc
IMPLEMENT_DYNCREATE(CMy2DGRAPHDoc, CDocument)
BEGIN_MESSAGE_MAP(CMy2DGRAPHDoc, CDocument)
//{{AFX_MSG_MAP(CMy2DGRAPHDoc)
// NOTE - the ClassWizard will add and remove mapping macros here.
// DO NOT EDIT what you see in these blocks of generated code!
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMy2DGRAPHDoc construction/destruction
CMy2DGRAPHDoc::CMy2DGRAPHDoc()
{
// TODO: add one-time construction code here
m_nPointNum = 0;
m_nLineNum = 0;
m_nEllipseNum = 0;
m_nRectNum = 0;
m_nCircleNum = 0;
m_nTrigonNum = 0;
m_nPolygonNum = 0;
m_nEraserNum = 0;
m_nFillNum = 0;
for(int i=0;i<100;i++)
m_nSideNum[i] = 0;
m_BackColor = RGB(255,255,255);
}
CMy2DGRAPHDoc::~CMy2DGRAPHDoc()
{
}
BOOL CMy2DGRAPHDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: add reinitialization code here
// (SDI documents will reuse this document)
m_nPointNum = 0;
m_nLineNum = 0;
m_nEllipseNum = 0;
m_nRectNum = 0;
m_nCircleNum = 0;
m_nTrigonNum = 0;
m_nPolygonNum = 0;
m_nEraserNum = 0;
m_nFillNum = 0;
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CMy2DGRAPHDoc serialization
void CMy2DGRAPHDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
// TODO: add storing code here
ar<<m_BackColor;
ar<<m_nPointNum;
for(int i=0;i<m_nPointNum;i++)
ar<<m_Point[i][0]<<m_Point[i][1];
ar<<m_nLineNum;
for(i=0;i<m_nLineNum;i++)
ar<<m_Line[i][0]<<m_Line[i][1]<<m_Line[i][2]<<m_Line[i][3]<<m_Line[i][4]<<m_Line[i][5]<<m_Line[i][6];
ar<<m_nEllipseNum;
for(i=0;i<m_nEllipseNum;i++)
ar<<m_Ellipse[i][0]<<m_Ellipse[i][1]<<m_Ellipse[i][2]<<m_Ellipse[i][3]<<m_Ellipse[i][4]
<<m_Ellipse[i][5]<<m_Ellipse[i][6]<<m_ELogBrush[i].lbStyle<<m_ELogBrush[i].lbColor;
ar<<m_nRectNum;
for(i=0;i<m_nRectNum;i++)
ar<<m_Rect[i][0]<<m_Rect[i][1]<<m_Rect[i][2]<<m_Rect[i][3]<<m_RLogPen[i].lopnStyle<<m_RLogPen[i].lopnWidth
<<m_RLogPen[i].lopnColor<<m_RLogBrush[i].lbStyle<<m_RLogBrush[i].lbColor;
ar<<m_nCircleNum;
for(i=0;i<m_nCircleNum;i++)
ar<<m_Circle[i][0]<<m_Circle[i][1]<<m_Circle[i][2]<<m_Circle[i][3]<<m_CLogPen[i].lopnStyle
<<m_CLogPen[i].lopnWidth<<m_CLogPen[i].lopnColor<<m_CLogBrush[i].lbStyle<<m_CLogBrush[i].lbColor;
ar<<m_nTrigonNum;
for(i=0;i<m_nTrigonNum;i++)
ar<<m_Trigon[i][0]<<m_Trigon[i][1]<<m_Trigon[i][2]<<m_Trigon[i][3]<<m_Trigon[i][4]<<m_Trigon[i][5]
<<m_TLogPen[i].lopnStyle<<m_TLogPen[i].lopnWidth<<m_TLogPen[i].lopnColor<<m_TLogBrush[i].lbStyle
<<m_TLogBrush[i].lbColor;
ar<<m_nFillNum;
for(i=0;i<m_nFillNum;i++)
ar<<m_Fill[i][0]<<m_Fill[i][1]<<m_Fill[i][2];
ar<<m_nEraserNum;
for(i=0;i<m_nEraserNum;i++)
ar<<m_Eraser[i][0]<<m_Eraser[i][1]<<m_Eraser[i][2]<<m_Eraser[i][3];
ar<<m_nPolygonNum;
for(i=0;i<m_nPolygonNum;i++)
{
ar<<m_nSideNum[i]<<m_PLogPen[i].lopnStyle<<m_PLogPen[i].lopnWidth<<m_PLogPen[i].lopnColor
<<m_PLogBrush[i].lbStyle<<m_PLogBrush[i].lbColor;
for(int j=0;j<m_nSideNum[i];j++)
ar<<m_Polygon[i][j];
}
}
else
{
// TODO: add loading code here
ar>>m_BackColor;
ar>>m_nPointNum;
for(int i=0;i<m_nPointNum;i++)
ar>>m_Point[i][0]>>m_Point[i][1];
ar>>m_nLineNum;
for(i=0;i<m_nLineNum;i++)
ar>>m_Line[i][0]>>m_Line[i][1]>>m_Line[i][2]>>m_Line[i][3]>>m_Line[i][4]>>m_Line[i][5]>>m_Line[i][6];
ar>>m_nEllipseNum;
for(i=0;i<m_nEllipseNum;i++)
ar>>m_Ellipse[i][0]>>m_Ellipse[i][1]>>m_Ellipse[i][2]>>m_Ellipse[i][3]>>m_Ellipse[i][4]
>>m_Ellipse[i][5]>>m_Ellipse[i][6]>>m_ELogBrush[i].lbStyle>>m_ELogBrush[i].lbColor;
ar>>m_nRectNum;
for(i=0;i<m_nRectNum;i++)
ar>>m_Rect[i][0]>>m_Rect[i][1]>>m_Rect[i][2]>>m_Rect[i][3]>>m_RLogPen[i].lopnStyle>>m_RLogPen[i].lopnWidth
>>m_RLogPen[i].lopnColor>>m_RLogBrush[i].lbStyle>>m_RLogBrush[i].lbColor;
ar>>m_nCircleNum;
for(i=0;i<m_nCircleNum;i++)
ar>>m_Circle[i][0]>>m_Circle[i][1]>>m_Circle[i][2]>>m_Circle[i][3]>>m_CLogPen[i].lopnStyle
>>m_CLogPen[i].lopnWidth>>m_CLogPen[i].lopnColor>>m_CLogBrush[i].lbStyle>>m_CLogBrush[i].lbColor;
ar>>m_nTrigonNum;
for(i=0;i<m_nTrigonNum;i++)
ar>>m_Trigon[i][0]>>m_Trigon[i][1]>>m_Trigon[i][2]>>m_Trigon[i][3]>>m_Trigon[i][4]>>m_Trigon[i][5]
>>m_TLogPen[i].lopnStyle>>m_TLogPen[i].lopnWidth>>m_TLogPen[i].lopnColor>>m_TLogBrush[i].lbStyle
>>m_TLogBrush[i].lbColor;
ar>>m_nFillNum;
for(i=0;i<m_nFillNum;i++)
ar>>m_Fill[i][0]>>m_Fill[i][1]>>m_Fill[i][2];
ar>>m_nEraserNum;
for(i=0;i<m_nEraserNum;i++)
ar>>m_Eraser[i][0]>>m_Eraser[i][1]>>m_Eraser[i][2]>>m_Eraser[i][3];
ar>>m_nPolygonNum;
for(i=0;i<m_nPolygonNum;i++)
{
ar>>m_nSideNum[i]>>m_PLogPen[i].lopnStyle>>m_PLogPen[i].lopnWidth>>m_PLogPen[i].lopnColor
>>m_PLogBrush[i].lbStyle>>m_PLogBrush[i].lbColor;
for(int j=0;j<m_nSideNum[i];j++)
ar>>m_Polygon[i][j];
}
}
}
/////////////////////////////////////////////////////////////////////////////
// CMy2DGRAPHDoc diagnostics
#ifdef _DEBUG
void CMy2DGRAPHDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CMy2DGRAPHDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMy2DGRAPHDoc commands
void CMy2DGRAPHDoc::DeleteContents()
{
// TODO: Add your specialized code here and/or call the base class
m_nPointNum = 0;
m_nLineNum = 0;
m_nEllipseNum = 0;
m_nRectNum = 0;
m_nCircleNum = 0;
m_nTrigonNum = 0;
m_nPolygonNum = 0;
m_nEraserNum = 0;
m_nFillNum = 0;
CDocument::DeleteContents();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -