📄 mychdoc.cpp
字号:
// MyCHDoc.cpp : implementation of the CMyCHDoc class
//
#include "stdafx.h"
#include "MyCH.h"
#include "MyCHDoc.h"
#include "MyCHView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMyCHDoc
IMPLEMENT_DYNCREATE(CMyCHDoc, CDocument)
BEGIN_MESSAGE_MAP(CMyCHDoc, CDocument)
//{{AFX_MSG_MAP(CMyCHDoc)
ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
ON_COMMAND(ID_FILE_SAVE, OnFileSave)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMyCHDoc construction/destruction
CMyCHDoc::CMyCHDoc()
{
// TODO: add one-time construction code here
}
CMyCHDoc::~CMyCHDoc()
{
}
BOOL CMyCHDoc::OnNewDocument()
{
if (!CDocument::OnNewDocument())
return FALSE;
// TODO: add reinitialization code here
// (SDI documents will reuse this document)
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CMyCHDoc serialization
void CMyCHDoc::Serialize(CArchive& ar)
{
CFrameWnd *MyFrameWnd = (CFrameWnd *)AfxGetApp()->m_pMainWnd;
CMyCHView *MyView = (CMyCHView *)MyFrameWnd->GetActiveView();
if (ar.IsStoring())
{
// TODO: add storing code here
ar<<MyView->m_nCount;
for(int i=0; i< MyView->m_nCount; i++)
ar<<MyView->m_pNode[i];
}
else
{
// TODO: add loading code here
if(MyView->m_pNode != NULL )
{
delete []MyView->m_pNode;
MyView->m_pNode = NULL;
}
if(MyView->m_pResult != NULL)
{
delete []MyView->m_pResult;
MyView->m_pResult = NULL;
}
ar>>MyView->m_nCount;
MyView->m_pNode = new CPoint[MyView->m_nCount];
for(int i=0; i< MyView->m_nCount; i++)
ar>>MyView->m_pNode[i];
if(MyView->m_nCount < 200)
{
CString str;
str.Format("%d",MyView->m_nCount);
for( i=0; i< MyView->m_nCount; i++)
{
str.Format(str+"x = %d\ty = %d\n", MyView->m_pNode[i].x, MyView->m_pNode[i].y);
}
MyView->MessageBox(str);
}
//初始化其他数据
MyView->m_r = 2;
MyView->m_nodeStyle = 0;
MyView->m_topLeft.x = 10;
MyView->m_topLeft.y = 10;
MyView->m_sScreen.cx = 1000;
MyView->m_sScreen.cy = 600;
MyView->m_h = 0;
MyView->m_pResult = new CPoint[MyView->m_nCount];
// if(MyView->m_pResult == NULL) MyView->MessageBox("问题在这啊,内存分配失败");
MyView->IsInitialed = TRUE;
MyView->IsComputed = FALSE;
MyView->Invalidate();
}
}
/////////////////////////////////////////////////////////////////////////////
// CMyCHDoc diagnostics
#ifdef _DEBUG
void CMyCHDoc::AssertValid() const
{
CDocument::AssertValid();
}
void CMyCHDoc::Dump(CDumpContext& dc) const
{
CDocument::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMyCHDoc commands
void CMyCHDoc::OnFileOpen()
{
// TODO: Add your command handler code here
CString strOpenFileType = "文本文件(*.txt)|*.txt|All Files(*.*)|*.*||";
CFileDialog OpenDlg(TRUE, "txt", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, strOpenFileType,NULL);
if(OpenDlg.DoModal() == IDOK)
{
OnOpenDocument(OpenDlg.m_ofn.lpstrFile);
//::AfxGetApp()->OpenDocumentFile(OpenDlg.m_ofn.lpstrFile);
}
}
void CMyCHDoc::OnFileSave()
{
// TODO: Add your command handler code here
CString strSaveFileType = "文本文件(*.txt)|*.txt|All Files(*.*)|*.*||";
CFileDialog OpenDlg(FALSE, "txt", "NoName", OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, strSaveFileType,NULL);
if(OpenDlg.DoModal() == IDOK)
{
OnSaveDocument(OpenDlg.m_ofn.lpstrFile);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -