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

📄 2dgraphdoc.cpp

📁 098u09ur3人味儿味儿 惹我而为人沃尔沃而人为
💻 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 + -