www.pudn.com > ImageHF.rar > ImageHFDoc.cpp


// ImageHFDoc.cpp : implementation of the CImageHFDoc class 
// 
 
#include "stdafx.h" 
#include "ImageHF.h" 
#include "CDIB.H" 
#include "ImageHFDoc.h" 
#include "GlobalApi.h" 
 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CImageHFDoc 
 
IMPLEMENT_DYNCREATE(CImageHFDoc, CDocument) 
 
BEGIN_MESSAGE_MAP(CImageHFDoc, CDocument) 
	//{{AFX_MSG_MAP(CImageHFDoc) 
	ON_COMMAND(ID_FILE_SAVE_AS, OnFileSaveAs) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// CImageHFDoc construction/destruction 
 
CImageHFDoc::CImageHFDoc() 
{ 
	// TODO: add one-time construction code here 
	InitDocVariable(); 
} 
 
CImageHFDoc::~CImageHFDoc() 
{ 
	FreeDocVariable(); 
} 
 
BOOL CImageHFDoc::OnNewDocument() 
{ 
	if (!CDocument::OnNewDocument()) 
		return FALSE; 
 
	// TODO: add reinitialization code here 
	// (SDI documents will reuse this document) 
 
	return TRUE; 
} 
 
 
 
///////////////////////////////////////////////////////////////////////////// 
// CImageHFDoc serialization 
 
void CImageHFDoc::Serialize(CArchive& ar) 
{ 
	m_pDibInit->Serialize(ar); 
 
	if (ar.IsStoring()) 
	{ 
		// TODO: add storing code here 
	} 
	else 
	{ 
		// TODO: add loading code here 
	} 
} 
 
///////////////////////////////////////////////////////////////////////////// 
// CImageHFDoc diagnostics 
 
#ifdef _DEBUG 
void CImageHFDoc::AssertValid() const 
{ 
	CDocument::AssertValid(); 
} 
 
void CImageHFDoc::Dump(CDumpContext& dc) const 
{ 
	CDocument::Dump(dc); 
} 
#endif //_DEBUG 
 
///////////////////////////////////////////////////////////////////////////// 
// CImageHFDoc commands 
 
void CImageHFDoc::OnFileSaveAs()  
{ 
	// TODO: Add your command handler code here 
	 
	CString strSaveFileType = "λͼÎļþ (*.bmp;*.dib)|*.bmp; *.dib|All Files (*.*)|*.*||"; 
	CFileDialog FileDlg(FALSE, "*.bmp", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, strSaveFileType); 
 
	CFile fileOpen ; 
	if( FileDlg.DoModal() == IDOK ) { 
		if(!fileOpen.Open( FileDlg.GetPathName() , CFile::modeCreate|CFile::modeWrite )){ 
			AfxMessageBox("cannot create the file to save"); 
			return; 
		} 
		if( !m_pDibInit->Write( &fileOpen ) ){ 
			return; 
		} 
		fileOpen.Close(); 
	} 
 
 
} 
 
 
 
 
// CImageFGDoc commands 
 
 
int CImageHFDoc::InitDocVariable() 
{ 
	m_pDibInit = new CDib; 
 
	// added by tanhc in 2002-7-30, used to test some function 
	m_pDibTest = new CDib; 
 
	m_nColorIndex = 0; 
 
	//-------------------------------------------- 
 
	return 0; 
} 
 
int CImageHFDoc::FreeDocVariable() 
{ 
	delete m_pDibInit; 
	m_pDibInit = NULL; 
 
	// added by tanhc in 2002-7-30, used to test some function 
	delete m_pDibTest ; 
	m_pDibTest = NULL ; 
 
	//-------------------------------------------- 
 
	return 0; 
}