www.pudn.com > PL0_compiler.rar > PL0Doc.cpp


// PL0Doc.cpp : implementation of the CPL0Doc class 
// 
 
#include "stdafx.h" 
#include "PL0.h" 
 
#include "PL0Doc.h" 
#include "CntrItem.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CPL0Doc 
 
IMPLEMENT_DYNCREATE(CPL0Doc, CRichEditDoc) 
 
BEGIN_MESSAGE_MAP(CPL0Doc, CRichEditDoc) 
	//{{AFX_MSG_MAP(CPL0Doc) 
	ON_COMMAND(ID_FILE_OPEN, OnFileOpen) 
	//}}AFX_MSG_MAP 
	// Enable default OLE container implementation 
	ON_UPDATE_COMMAND_UI(ID_OLE_EDIT_LINKS, CRichEditDoc::OnUpdateEditLinksMenu) 
	ON_COMMAND(ID_OLE_EDIT_LINKS, CRichEditDoc::OnEditLinks) 
	ON_UPDATE_COMMAND_UI_RANGE(ID_OLE_VERB_FIRST, ID_OLE_VERB_LAST, CRichEditDoc::OnUpdateObjectVerbMenu) 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CPL0Doc construction/destruction 
 
CPL0Doc::CPL0Doc() 
{ 
	// TODO: add one-time construction code here 
 
} 
 
CPL0Doc::~CPL0Doc() 
{ 
} 
 
BOOL CPL0Doc::OnNewDocument() 
{ 
	if (!CRichEditDoc::OnNewDocument()) 
		return FALSE; 
 
	// TODO: add reinitialization code here 
	// (SDI documents will reuse this document) 
 
	return TRUE; 
} 
 
CRichEditCntrItem* CPL0Doc::CreateClientItem(REOBJECT* preo) const 
{ 
	// cast away constness of this 
	return new CPL0CntrItem(preo, (CPL0Doc*) this); 
} 
 
 
 
///////////////////////////////////////////////////////////////////////////// 
// CPL0Doc serialization 
 
void CPL0Doc::Serialize(CArchive& ar) 
{ 
	if (ar.IsStoring()) 
	{ 
		// TODO: add storing code here 
	} 
	else 
	{ 
		// TODO: add loading code here 
	} 
 
	// Calling the base class CRichEditDoc enables serialization 
	//  of the container document's COleClientItem objects. 
	// TODO: set CRichEditDoc::m_bRTF = FALSE if you are serializing as text 
	CRichEditDoc::Serialize(ar); 
} 
 
///////////////////////////////////////////////////////////////////////////// 
// CPL0Doc diagnostics 
 
#ifdef _DEBUG 
void CPL0Doc::AssertValid() const 
{ 
	CRichEditDoc::AssertValid(); 
} 
 
void CPL0Doc::Dump(CDumpContext& dc) const 
{ 
	CRichEditDoc::Dump(dc); 
} 
#endif //_DEBUG 
 
///////////////////////////////////////////////////////////////////////////// 
// CPL0Doc commands 
 
void CPL0Doc::OnFileOpen()  
{ 
	// TODO: Add your command handler code here 
	//m_wndCPL0View->GetRichEditCtrl().ReplaceSel("ksjdfksjd"); 
	//m_wndBottomView->GetRichEditCtrl().ReplaceSel("ksjdfksjd"); 
	//m_wndCTopRightView->GetRichEditCtrl().ReplaceSel("ksjdfksjd"); 
	CFileDialog dlg(TRUE,"txt",NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"文本文件(*.txt)|*.txt|所有文件(*.*)|*.*||",NULL); 
	if(dlg.DoModal()==IDCANCEL) 
		return; 
	CString filename=dlg.GetPathName(); 
	CString m_sSource; 
	TCHAR	buffer[256]; 
 
		CStdioFile	file(filename, CFile::modeRead | CFile::typeText); 
		long	length = file.GetLength(); 
		long	count = 0; 
		do { 
			memset(buffer, 0, sizeof(buffer)); 
			count = file.Read(buffer, sizeof(buffer)-1); 
			m_sSource += buffer; 
		} while (count == sizeof(buffer)-1); 
		m_wndCPL0View->GetRichEditCtrl().ReplaceSel(m_sSource); 
 
}