⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showdibview.cpp

📁 用于打开,保存
💻 CPP
字号:
// ShowDIBView.cpp : implementation of the CShowDIBView class
//

#include "stdafx.h"
#include "ShowDIB.h"

#include "ShowDIBDoc.h"
#include "ShowDIBView.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CShowDIBView

IMPLEMENT_DYNCREATE(CShowDIBView, CView)

BEGIN_MESSAGE_MAP(CShowDIBView, CView)
	//{{AFX_MSG_MAP(CShowDIBView)
	ON_COMMAND(ID_FILE_OPEN, OnFileOpen)
	ON_COMMAND(ID_STYLE_STRETCHED, OnStyleStretched)
	ON_COMMAND(ID_STYLE_NORMAL, OnStyleNormal)
	ON_COMMAND(ID_FILE_SAVE, OnFileSave)
	ON_COMMAND(ID_PROCESS_2value, OnPROCESS2value)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CShowDIBView construction/destruction

CShowDIBView::CShowDIBView()
{
	ImageStyle = 0;
}

CShowDIBView::~CShowDIBView()
{
}

BOOL CShowDIBView::PreCreateWindow(CREATESTRUCT& cs)
{
	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CShowDIBView drawing

void CShowDIBView::OnDraw(CDC* pDC)
{
	CShowDIBDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);

	RECT Rect;
	GetClientRect( &Rect );
	m_Dib.SetPalette( pDC );
	m_Dib.Draw( pDC, 0, 0,
		Rect.right, Rect.bottom, ImageStyle );

}

/////////////////////////////////////////////////////////////////////////////
// CShowDIBView diagnostics

#ifdef _DEBUG
void CShowDIBView::AssertValid() const
{
	CView::AssertValid();
}

void CShowDIBView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CShowDIBDoc* CShowDIBView::GetDocument()
	// non-debug version is inline
{
	ASSERT(
		m_pDocument->IsKindOf(RUNTIME_CLASS(CShowDIBDoc)));
	return (CShowDIBDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CShowDIBView message handlers

void CShowDIBView::OnFileOpen() 
{
	static char szFilter[] = "BMP Files(*.BMP)|*.BMP|All Files(*.*)|*.*||";

	CFileDialog FileDlg( TRUE, NULL, NULL,
		OFN_HIDEREADONLY, szFilter );

	if( FileDlg.DoModal() == IDOK &&
		m_Dib.Load( FileDlg.GetPathName() ) ){
		InvalidateRect( NULL, TRUE );
		UpdateWindow();
		}

}

void CShowDIBView::OnStyleStretched() 
{
	// TODO: Add your command handler code here
	ImageStyle = 1;
	
	CMenu *pMnu = AfxGetMainWnd()->GetMenu( );
	pMnu->CheckMenuItem(ID_STYLE_STRETCHED,MF_CHECKED);
	pMnu->CheckMenuItem(ID_STYLE_NORMAL,MF_UNCHECKED);
	
	InvalidateRect( NULL, TRUE );
	UpdateWindow();
}

void CShowDIBView::OnStyleNormal() 
{
	// TODO: Add your command handler code here
	ImageStyle = 0;

	CMenu *pMnu = AfxGetMainWnd()->GetMenu( );
	pMnu->CheckMenuItem(ID_STYLE_STRETCHED,MF_UNCHECKED);
	pMnu->CheckMenuItem(ID_STYLE_NORMAL,MF_CHECKED);
	
	InvalidateRect( NULL, TRUE );
	UpdateWindow();
}


void CShowDIBView::OnFileSave() 
{
	// TODO: Add your command handler code here
	static char szFilter[] = "BMP Files(*.BMP)|*.BMP|All Files(*.*)|*.*||";

	CFileDialog FileDlg( FALSE, "bmp", NULL,
		OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, szFilter );

	if( FileDlg.DoModal() == IDOK &&
		m_Dib.Save( FileDlg.GetPathName() ) ){
		InvalidateRect( NULL, TRUE );
		UpdateWindow();
		}
	
}


void CShowDIBView::OnPROCESS2value() 
{
	// TODO: Add your command handler code here
  
	if (m_Dib.ConvertToTwoValue())
	{
		InvalidateRect( NULL, TRUE );
		UpdateWindow();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -