📄 gdrawdoc.cpp
字号:
// GDrawDoc.cpp : CGDrawDoc 类的实现
//
#include "stdafx.h"
#include "GDraw.h"
#include"Graph_Union.h"
#include "GDrawDoc.h"
#include "GDrawView.h"
#include"LinePro2.h"
#include"MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CGDrawDoc
IMPLEMENT_DYNCREATE(CGDrawDoc, CDocument)
BEGIN_MESSAGE_MAP(CGDrawDoc, CDocument)
ON_COMMAND(ID_Save, &CGDrawDoc::OnSave)
ON_COMMAND(ID_HIDE, &CGDrawDoc::OnHide)
ON_COMMAND(ID_BUTTON32791, &CGDrawDoc::OnLine)
ON_COMMAND(ID_BREAKLS, &CGDrawDoc::OnBkL)
ON_COMMAND(ID_CCLE, &CGDrawDoc::OnCircle)
ON_COMMAND(ID_SELECT, &CGDrawDoc::OnSelectGraph)
ON_COMMAND(ID_SETFIL, &CGDrawDoc::setfill)
ON_COMMAND(ID_RAILWAY, &CGDrawDoc::OnRailway)
END_MESSAGE_MAP()
// CGDrawDoc 构造/析构
CGDrawDoc::CGDrawDoc()
{
// TODO: 在此添加一次性构造代码
size=0;
width=1024;
height=768;
}
CGDrawDoc::~CGDrawDoc()
{
}
BOOL CGDrawDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: 在此添加重新初始化代码
// (SDI 文档将重用该文档)
return TRUE;
}
// CGDrawDoc 序列化
void CGDrawDoc::Serialize(CArchive& ar)
{
// storing code
CObject::Serialize(ar);
if(ar.IsStoring())
{
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *view=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
int s=view->m_graphlist.size();
int ssi=0;
for(view->docgp=view->m_graphlist.begin ();view->docgp!=view->m_graphlist.end();view->docgp++)
if( view->docgp->type==-1) ssi++;
s-=ssi;
ar<<s;
for(view->docgp=view->m_graphlist.begin ();view->docgp!=view->m_graphlist.end();view->docgp++)
{
if( view->docgp->type==-1) continue;
ar<<view->docgp->shape;
ar<<view->docgp->color;
ar<<view->docgp->wide;
ar<<view->docgp->count;
for( int i=0;i<view->docgp->count;i++)
{
ar<<view->docgp->pp[i].x;
ar<<view->docgp->pp[i].y;
}
ar<<view->docgp->type;
ar<<view->docgp->fill_color;
}
ar<<view->bg_color;
ar<<view->width;
ar<<view->height;
}
else
{
ar>>size;
ptr=new pro[size+1];
for(int i=0;i<size;i++)
{
ar>>ptr[i].shape;
ar>>ptr[i].colors;
ar>>ptr[i].wide;
ar>>ptr[i].count;
int tmp=ptr[i].count;
ptr[i].p=new CPoint[tmp+1];
for( int j=0;j<tmp;j++)
{
ar>>ptr[i].p[j].x;
ar>>ptr[i].p[j].y;
}
ar>>ptr[i].type;
ar>>ptr[i].fill_color;
}
ar>>bg_color;
ar>>width;
ar>>height;
}
}
// CGDrawDoc 诊断
#ifdef _DEBUG
void CGDrawDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CGDrawDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
// CGDrawDoc 命令
void CGDrawDoc::OnSave()
{
// TODO: 在此添加命令处理程序代码
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *view=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
view->OnSave();
}
void CGDrawDoc::OnHide()
{
// TODO: 在此添加命令处理程序代码
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *view=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
view->OnHide();
}
void CGDrawDoc::OnLine()
{
// TODO: 在此添加命令处理程序代码
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *view=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
view->OnLine();
}
void CGDrawDoc::OnBkL()
{
// TODO: 在此添加命令处理程序代码
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *view=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
view->On_BreakLS();
}
void CGDrawDoc::OnCircle()
{
// TODO: 在此添加命令处理程序代码
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *view=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
view->OnCircle();
}
void CGDrawDoc::OnSelectGraph()
{
// TODO: 在此添加命令处理程序代码
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *view=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
view->OnSelectGraph();
}
void CGDrawDoc::setfill()
{
// TODO: 在此添加命令处理程序代码
CMainFrame* MainFrame = (CMainFrame*)AfxGetMainWnd();
CGDrawView *view=(CGDrawView*)MainFrame->m_wndSplitter.GetPane(0,0);
view->OnSetfil();
}
void CGDrawDoc::OnRailway()
{
// TODO: 在此添加命令处理程序代码
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -