www.pudn.com > 图像处理源代码.rar > Task1.cpp


// Task1.cpp : implementation file 
// 
 
#include  
#include "stdafx.h" 
#include "tuxiang.h" 
#include "Task1.h" 
#include "image.h" 
#include "imgview.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// CTask1 property page 
 
IMPLEMENT_DYNCREATE(CTask1, CPropertyPage) 
 
CTask1::CTask1() : CPropertyPage(CTask1::IDD) 
{ 
	//{{AFX_DATA_INIT(CTask1) 
	//}}AFX_DATA_INIT 
} 
 
CTask1::~CTask1() 
{ 
} 
 
void CTask1::DoDataExchange(CDataExchange* pDX) 
{ 
	CPropertyPage::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(CTask1) 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(CTask1, CPropertyPage) 
	//{{AFX_MSG_MAP(CTask1) 
	ON_BN_CLICKED(IDOPEN, OnOpenFile) 
	ON_BN_CLICKED(IDSAVEAS, OnSaveasFile) 
	ON_BN_CLICKED(IDCLEAR, OnClear) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
MYIMAGE *pImage;		//指示当前显示的图象 
 
CImgView *m_ImgView; 
 
///////////////////////////////////////////////////////////////////////////// 
// CTask1 message handlers 
 
//按钮操作——打开 
void CTask1::OnOpenFile()  
{ 
	if(m_ImgView!=NULL) m_ImgView->ShowWindow (SW_HIDE); 
	if(pImage!=NULL) 
		delete pImage; 
 
	static char BASED_CODE szFilter[] = "图象文件 (*.bmp;*.pcx)|*.bmp;*.pcx"; 
	CString sFileName; 
 
	//显示一个Open File Dialog 
	CFileDialog	opendlg(TRUE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL); 
	int choice=opendlg.DoModal(); 
	if(choice==IDOK) 
	{ 
		//读取文件名 
		sFileName=opendlg.GetPathName(); 
		if(opendlg.GetFileExt()=="bmp") 
			pImage=ReadBmp(sFileName,this->m_hWnd); 
		else if(opendlg.GetFileExt()=="pcx") 
			pImage=ReadPcx(sFileName,this->m_hWnd); 
		else 
			MessageBox("请选择BMP或PCX文件!"); 
 
		if(m_ImgView==NULL) m_ImgView=new CImgView(pImage,this); 
		m_ImgView->ShowWindow (SW_SHOWNORMAL); 
		m_ImgView->DisplayImage(); 
	} 
	delete opendlg; 
} 
 
//按钮操作——保存... 
void CTask1::OnSaveasFile()  
{ 
	if(pImage==NULL){ 
		MessageBox("当前无图象显示。"); 
		return; 
	} 
 
	static char BASED_CODE szFilter[] = "图象文件 (*.bmp;*.pcx)|*.bmp;*.pcx"; 
	CFileDialog	savedlg(FALSE,NULL,NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,szFilter,NULL); 
	int choice=savedlg.DoModal(); 
 
	CString sFileName=savedlg.GetPathName(); 
	if(choice=IDOK) 
		if(savedlg.GetFileExt()=="bmp") 
			SaveBmp(sFileName,pImage,FALSE,this->m_hWnd); 
		else if(savedlg.GetFileExt()=="pcx") 
			SavePcx(sFileName,pImage,this->m_hWnd); 
		else 
			MessageBox("请指定扩展名为BMP或PCX的文件名!"); 
	delete savedlg; 
} 
 
 
void CTask1::OnClear()  
{ 
 
	if(m_ImgView!=NULL) 
	{ 
		m_ImgView->EndDialog(IDOK); 
		m_ImgView=NULL; 
	} 
 
	if(pImage!=NULL) 
	{ 
		delete pImage; 
		pImage=NULL; 
	} 
}