📄 tranview.cpp
字号:
// TranView.cpp : implementation of the CTranView class
//
#include "stdafx.h"
#include "Tran.h"
#include "TranDoc.h"
#include "TranView.h"
#include "MainFrm.h"
#include "ChildFrm.h"
#include "Dib.h"
#include "Jpeg.h"
#include "TranDlg.h"
#include "DispDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CTranView
IMPLEMENT_DYNCREATE(CTranView, CScrollView)
BEGIN_MESSAGE_MAP(CTranView, CScrollView)
//{{AFX_MSG_MAP(CTranView)
ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
ON_COMMAND(ID_TRAN_BMPJPG, OnTranBmpjpg)
ON_COMMAND(ID_TRAN_OPENBMP, OnTranOpenbmp)
ON_COMMAND(ID_TRAN_OPENJPG, OnTranOpenjpg)
ON_COMMAND(ID_TRAN_SAVEASJPG, OnTranSaveasjpg)
ON_COMMAND(ID_TRAN_SAVEASBMP, OnTranSaveasbmp)
ON_COMMAND(ID_DISP_DLG, OnDispDlg)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CScrollView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CScrollView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CScrollView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CTranView construction/destruction
CTranView::CTranView()
{
// TODO: add construction code here
}
CTranView::~CTranView()
{
}
BOOL CTranView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CScrollView::PreCreateWindow(cs);
}
/////////////////////////////////////////////////////////////////////////////
// CTranView drawing
void CTranView::OnDraw(CDC* pDC)
{
CTranDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
BeginWaitCursor();
if (!m_dib.IsEmpty())
{
CSize sizeTotal;
sizeTotal.cx = m_dib.GetWidth();
sizeTotal.cy = m_dib.GetHeight();
SetScrollSizes(MM_TEXT, sizeTotal);
m_dib.Display(pDC, 0, 0);
}
EndWaitCursor();
}
void CTranView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
CSize sizeTotal;
// TODO: calculate the total size of this view
sizeTotal.cx = 0;
sizeTotal.cy = 0;
SetScrollSizes(MM_TEXT, sizeTotal);
}
/////////////////////////////////////////////////////////////////////////////
// CTranView printing
BOOL CTranView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CTranView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CTranView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
/////////////////////////////////////////////////////////////////////////////
// CTranView diagnostics
#ifdef _DEBUG
void CTranView::AssertValid() const
{
CScrollView::AssertValid();
}
void CTranView::Dump(CDumpContext& dc) const
{
CScrollView::Dump(dc);
}
CTranDoc* CTranView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CTranDoc)));
return (CTranDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CTranView message handlers
void CTranView::OnFileOpen()
{
// TODO: Add your command handler code here
CString fileName;
CString szOpenFilter = "图象文件|*.bmp; *.dib; *.jpg; *.jpe; *.jpeg; |位图文件 (*.bmp;*.dib)|*.bmp; *.dib|JPEG文件 (*.jpg;*.jpe;*.jpeg)|*.jpg; *.jpe; *.jpeg|All Files (*.*)|*.*||";
CFileDialog FileDlg(TRUE,NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szOpenFilter);
if (FileDlg.DoModal() == IDOK)
{
fileName=FileDlg.GetPathName();
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
_splitpath((LPCSTR)fileName, drive, dir, fname, ext);
CMainFrame *pMainFrame=(CMainFrame *)AfxGetMainWnd();
CChildFrame *pChildFrame=(CChildFrame *)pMainFrame->MDIGetActive();
CTranView *pTranView=(CTranView *)pChildFrame->GetActiveView();
pChildFrame->SetWindowText(fileName);
CJpeg jpeg;
if (! stricmp(ext, ".jpg") ||
! stricmp(ext, ".jpe") ||
! stricmp(ext, ".jpeg") )
{
if (! jpeg.Load(fileName))
AfxMessageBox("false");
HDIB hDIB = CopyHandle(jpeg.m_dib.GetHandle());
m_dib.Attach(hDIB);
}
if (! stricmp(ext, ".bmp") ||
! stricmp(ext, ".dib") )
{ if (!m_dib.Load(fileName))
AfxMessageBox("false");
HDIB hDIB = CopyHandle(m_dib.GetHandle());
m_dib.Attach(hDIB);
}
}
Invalidate(TRUE);
}
/*
void CTranView::OnFileSaveAs()
{
// TODO: Add your command handler code here
CString fileName;
CString szSaveFilter= "位图 (*.bmp;*.dib)|*.bmp; *.dib|JPEG文件 (*.jpg;*.jpe;*.jpeg)|*.jpg; *.jpe; *.jpeg|All Files (*.*)|*.*||";
CFileDialog FileDlg(FALSE, "*.bmp", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szSaveFilter);
if (FileDlg.DoModal() == IDOK)
{
fileName=FileDlg.GetPathName();
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
_splitpath((LPCSTR)fileName, drive, dir, fname, ext);
CJpeg jpeg;
if (! stricmp(ext, ".jpg") ||
! stricmp(ext, ".jpe") ||
! stricmp(ext, ".jpeg") )
{
//将文件存储为JPEG格式
jpeg.Save(fileName,&m_dib, TRUE, 75);
}
if (! stricmp(ext, ".bmp") ||
! stricmp(ext, ".dib") )
{
//将文件存储为BMP格式
m_dib.Save(fileName);
}
}
}*/
void CTranView::OnTranBmpjpg()
{
// TODO: Add your command handler code here
CTranDlg Trandlg;
//DoModal()是类成员函数通过调用该函数将显示对话框
Trandlg.DoModal();
}
void CTranView::OnTranOpenbmp()
{
// TODO: Add your command handler code here
CString fileName;
CString szOpenFilter = "位图文件 (*.bmp;*.dib)|*.bmp; *.dib|All Files (*.*)|*.*||";
CFileDialog FileDlg(TRUE,NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szOpenFilter);
if (FileDlg.DoModal() == IDOK)
{
fileName=FileDlg.GetPathName();
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
_splitpath((LPCSTR)fileName, drive, dir, fname, ext);
if (! stricmp(ext, ".bmp") ||
! stricmp(ext, ".dib") )
{ if (!m_dib.Load(fileName))
AfxMessageBox("false");
HDIB hDIB = CopyHandle(m_dib.GetHandle());
m_dib.Attach(hDIB);
}
}
Invalidate(TRUE);
}
void CTranView::OnTranOpenjpg()
{
// TODO: Add your command handler code here
CString fileName;
CString szOpenFilter = "JPEG文件 (*.jpg;*.jpe;*.jpeg)|*.jpg;*.jpe;*.jpeg|All Files (*.*)|*.*||";
CFileDialog FileDlg(TRUE,NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szOpenFilter);
if (FileDlg.DoModal() == IDOK)
{
fileName=FileDlg.GetPathName();
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
_splitpath((LPCSTR)fileName, drive, dir, fname, ext);
CJpeg jpeg;
if (! stricmp(ext, ".jpg") ||
! stricmp(ext, ".jpe") ||
! stricmp(ext, ".jpeg") )
{
if (! jpeg.Load(fileName))
AfxMessageBox("false");
HDIB hDIB = CopyHandle(jpeg.m_dib.GetHandle());
m_dib.Attach(hDIB);
}
}
Invalidate(TRUE);
}
void CTranView::OnTranSaveasjpg()
{
// TODO: Add your command handler code here
CString fileName;
CString szSaveFilter= "JPEG文件 (*.jpg;*.jpe;*.jpeg)|*.jpg; *.jpe; *.jpeg|All Files (*.*)|*.*||";
CFileDialog FileDlg(FALSE, "*.bmp", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szSaveFilter);
if (FileDlg.DoModal() == IDOK)
{
fileName=FileDlg.GetPathName();
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
_splitpath((LPCSTR)fileName, drive, dir, fname, ext);
CJpeg jpeg;
if (! stricmp(ext, ".jpg") ||
! stricmp(ext, ".jpe") ||
! stricmp(ext, ".jpeg") )
{
//将文件存储为JPEG格式
jpeg.Save(fileName,&m_dib, 75);
}
}
}
void CTranView::OnTranSaveasbmp()
{
// TODO: Add your command handler code here
CString fileName;
CString szSaveFilter= "位图 (*.bmp;*.dib)|*.bmp; *.dib|All Files (*.*)|*.*||";
CFileDialog FileDlg(FALSE, "*.bmp", NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, szSaveFilter);
if (FileDlg.DoModal() == IDOK)
{
fileName=FileDlg.GetPathName();
char drive[_MAX_DRIVE];
char dir[_MAX_DIR];
char fname[_MAX_FNAME];
char ext[_MAX_EXT];
_splitpath((LPCSTR)fileName, drive, dir, fname, ext);
// CJpeg jpeg;
if (! stricmp(ext, ".bmp") ||
! stricmp(ext, ".dib") )
{
//将文件存储为BMP格式
m_dib.Save(fileName);
}
}
}
//新加
void CTranView::OnDispDlg()
{
// TODO: Add your command handler code here
CDispDlg Dlg;
Dlg.DoModal();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -