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

📄 eboarddoc.cpp

📁 电子画图板
💻 CPP
字号:
// eboardDoc.cpp : implementation of the CEboardDoc class
//

#include "stdafx.h"
#include "eboard.h"

#include "eboardDoc.h"

//包含的头文件
#include "DlgAddStatement.h"
#include "DlgFirstLine.h"	
#include "DlgSecondLine.h"	
#include "DlgCircle.h"		
#include "DlgSin.h"	
#include "DlgCos.h"	
#include "ShapeCategory.h"
#include "DlgShapeMan.h"
#include "DlgStatementMan.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CEboardDoc

IMPLEMENT_DYNCREATE(CEboardDoc, CDocument)

BEGIN_MESSAGE_MAP(CEboardDoc, CDocument)
	//{{AFX_MSG_MAP(CEboardDoc)
	ON_COMMAND(ID_CO_SET, OnCoSet)
	ON_COMMAND(ID_CO_RESET, OnCoReset)
	ON_COMMAND(ID_DRAW_ADDSTATEMENT, OnDrawAddstatement)
	ON_COMMAND(ID_DRAW_CIRCLE, OnDrawCircle)
	ON_COMMAND(ID_DRAW_COS, OnDrawCos)
	ON_COMMAND(ID_DRAW_FIRSTLINE, OnDrawFirstline)
	ON_COMMAND(ID_DRAW_SENCONLINE, OnDrawSenconline)
	ON_COMMAND(ID_DRAW_SIN, OnDrawSin)
	ON_COMMAND(ID_MAN_SHAPE, OnManShape)
	ON_COMMAND(ID_MAN_STATEMENT, OnManStatement)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEboardDoc construction/destruction

CEboardDoc::CEboardDoc()
{
	// TODO: add one-time construction code here
	m_markState=false;	//要添加的注释内容	
	m_statement="";				//标明是否可通过单击鼠标左键加注释
}

CEboardDoc::~CEboardDoc()
{
}

BOOL CEboardDoc::OnNewDocument()
{
	if (!CDocument::OnNewDocument())
		return FALSE;

	// TODO: add reinitialization code here
	// (SDI documents will reuse this document)

	return TRUE;
}



/////////////////////////////////////////////////////////////////////////////
// CEboardDoc serialization

void CEboardDoc::Serialize(CArchive& ar)
{
	m_co.Serialize(ar);	//调用Cordinate的串行化函数
	if (ar.IsStoring())
	{
		// TODO: add storing code here
		ar <<m_dlgSetCO.m_uiOX <<m_dlgSetCO.m_uiOY <<m_dlgSetCO.m_uiXS <<m_dlgSetCO.m_uiYS;
	}
	else
	{
		// TODO: add loading code here
		ar >>m_dlgSetCO.m_uiOX >>m_dlgSetCO.m_uiOY >>m_dlgSetCO.m_uiXS >>m_dlgSetCO.m_uiYS;
	}
}

/////////////////////////////////////////////////////////////////////////////
// CEboardDoc diagnostics

#ifdef _DEBUG
void CEboardDoc::AssertValid() const
{
	CDocument::AssertValid();
}

void CEboardDoc::Dump(CDumpContext& dc) const
{
	CDocument::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CEboardDoc commands

void CEboardDoc::DeleteContents() 
{
	// TODO: Add your specialized code here and/or call the base class
	m_co.delAllShape();	//删去坐标系上的所有图形
	m_co.delAllState();	//删去坐标系上的所有图形
	m_co.resetAxis();		//复位坐标系
	//坐标系设置对话框中显示坐标系的默认值
	m_dlgSetCO.m_uiOX=380;		
	m_dlgSetCO.m_uiOY=240;
	m_dlgSetCO.m_uiXS=20;
	m_dlgSetCO.m_uiYS=20;

	CDocument::DeleteContents();
}

void CEboardDoc::OnCoSet()		//(按下)“设置坐标系”菜单项的消息处理函数
{
	// TODO: Add your command handler code here
	if(m_dlgSetCO.DoModal()==IDOK){
		m_co.setOrg(m_dlgSetCO.m_uiOX,m_dlgSetCO.m_uiOY);
		m_co.setXScale(m_dlgSetCO.m_uiXS);
		m_co.setYScale(m_dlgSetCO.m_uiYS);
		UpdateAllViews(NULL);
	}
}

void CEboardDoc::OnCoReset()	//(按下)“复位坐标系”菜单项的消息处理函数
{
	// TODO: Add your command handler code here
	m_co.resetAxis();		//复位坐标系
	//坐标系设置对话框中显示坐标系的默认值
	m_dlgSetCO.m_uiOX=380;
	m_dlgSetCO.m_uiOY=240;
	m_dlgSetCO.m_uiXS=20;
	m_dlgSetCO.m_uiYS=20;
	UpdateAllViews(NULL);	//更新视图
}

void CEboardDoc::OnDrawAddstatement()	//(按下)“添加注释”菜单项的消息处理函数
{
	// TODO: Add your command handler code here
	DlgAddStatement dlg;
	if(dlg.DoModal()==IDOK){
		m_statement=dlg.m_strStatement;
		m_markState=true;
	}
}

void CEboardDoc::OnDrawCircle()		//(按下)“圆”菜单项的消息处理函数
{
	// TODO: Add your command handler code here
	DlgCircle dlg;
	if(dlg.DoModal()==IDOK){
		double p[3];
		p[0]=dlg.m_dA;
		p[1]=dlg.m_dB;
		p[2]=dlg.m_dR;
		m_co.addShape(p,CIRCLE);		//添加图形
		UpdateAllViews(NULL);			//更新视图
	}
}

void CEboardDoc::OnDrawCos()		//(按下)“余弦函数”菜单项的消息处理函数
{
	// TODO: Add your command handler code here
	DlgCos dlg;
	if(dlg.DoModal()==IDOK){
		double p[4];
		p[0]=dlg.m_dA;
		p[1]=dlg.m_dB;
		p[2]=dlg.m_dC;
		p[3]=dlg.m_dD;
		m_co.addShape(p,COS);	    //添加图形
		UpdateAllViews(NULL);	    //更新视图
	}
}

void CEboardDoc::OnDrawFirstline()		//(按下)“一次函数”菜单项的消息处理函数
{
	// TODO: Add your command handler code here
	DlgFirstLine dlg;
	if(dlg.DoModal()==IDOK){
		double p[2];
		p[0]=dlg.m_dA;
		p[1]=dlg.m_dB;
		m_co.addShape(p,FIRSTLINE);		//添加图形
		UpdateAllViews(NULL);			//更新视图
	}
}

void CEboardDoc::OnDrawSenconline()			//(按下)“二次函数”菜单项的消息处理函数
{
	// TODO: Add your command handler code here
	DlgSecondLine dlg;
	if(dlg.DoModal()==IDOK){
		double p[3];
		p[0]=dlg.m_dA;
		p[1]=dlg.m_dB;
		p[2]=dlg.m_dC;
		m_co.addShape(p,SECONDLINE);	  //添加图形
		UpdateAllViews(NULL);			  //更新视图
	}
}

void CEboardDoc::OnDrawSin()			//(按下)“正弦函数”菜单项的消息处理函数
{
	// TODO: Add your command handler code here
	DlgSin dlg;
	if(dlg.DoModal()==IDOK){
		double p[4];
		p[0]=dlg.m_dA;
		p[1]=dlg.m_dB;
		p[2]=dlg.m_dC;
		p[3]=dlg.m_dD;
		m_co.addShape(p,SIN);	    //添加图形
		UpdateAllViews(NULL);	    //更新视图
	}
}

void CEboardDoc::OnManShape()			//(按下)“图形管理”菜单项的消息处理函数
{
	// TODO: Add your command handler code here
	DlgShapeMan man;
	man.m_pDoc=this;
	man.DoModal();
}

void CEboardDoc::OnManStatement()		//(按下)“注释管理”菜单项的消息处理函数
{
	// TODO: Add your command handler code here
	DlgStatementMan man;
	man.m_pDoc=this;
	man.DoModal();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -