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; } }