📄 dglsdoc.cpp
字号:
// DglsDoc.cpp : implementation of the CDglsDoc class
//
#include "stdafx.h"
#include "Dgls.h"
#include "DglsDoc.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDglsDoc
IMPLEMENT_DYNCREATE(CDglsDoc, CDocument)
BEGIN_MESSAGE_MAP(CDglsDoc, CDocument)
//{{AFX_MSG_MAP(CDglsDoc)
// 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()
/////////////////////////////////////////////////////////////////////////////
// CDglsDoc construction/destruction
CDglsDoc::CDglsDoc()
{
// TODO: add one-time construction code here
}
CDglsDoc::~CDglsDoc()
{
}
BOOL CDglsDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: add reinitialization code here
// (SDI documents will reuse this document)
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CDglsDoc serialization
void CDglsDoc::Serialize(CArchive& ar)
{
if (ar.IsStoring())
{
m_DocVirtual= &m_MLine;
m_DocVirtual->Serialize(ar);
// TODO: add storing code here
}
else
{
m_DocVirtual= &m_MLine;
m_DocVirtual->Serialize(ar);
// TODO: add loading code here
}
}
/////////////////////////////////////////////////////////////////////////////
// CDglsDoc diagnostics
#ifdef _DEBUG
void CDglsDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CDglsDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CDglsDoc commands
//***************************连续直线
IMPLEMENT_SERIAL(CMLine,CObject,1)
CMLine::CMLine(int* pointX,int* pointY,int num,int re)
{
NUM=num;
for(int i=0;i<NUM;i++)
{
PointX[i]=pointX[i];
PointY[i]=pointY[i];
}
RE=re;
}
void CMLine::My (CDC *pDC)
{
for(int i=1;i<NUM;i++)
{
pDC->MoveTo(PointX[i-1],PointY[i-1]);
pDC->LineTo(PointX[i],PointY[i]);
}
if(RE==1)
{
pDC->MoveTo(PointX[NUM-1],PointY[NUM-1]);
pDC->LineTo(PointX[0],PointY[0]);
}
}
void CMLine::Serialize (CArchive &ar)
{
if(ar.IsStoring())
{
for(int i=0;i<NUM;i++)ar<<PointX[i];
for(i=0;i<NUM;i++)ar<<PointY[i];
ar<<NUM<<RE;
}
else
{
for(int i=0;i<NUM;i++)ar>>PointX[i];
for(i=0;i<NUM;i++)ar>>PointY[i];
ar>>NUM>>RE;
}
}
void CDglsDoc::AddMLine(int* pointX,int* pointY,int num,int re)
{
CMLine* pMLine=new CMLine(pointX,pointY,num,re);
m_MLine.Add(pMLine);
SetModifiedFlag ();
}
CMLine* CDglsDoc::GetMLine(int index)
{
if (index<0||index>m_MLine.GetUpperBound ())
return 0;
return (CMLine*)m_MLine.GetAt (index);
}
void CDglsDoc::DeleteContents ()//重载成员函数,清除当前文档的内容
{
int index;
index=m_MLine.GetSize();
while(index--)
delete m_MLine.GetAt(index);
m_MLine.RemoveAll();//释放指针数组
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -