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

📄 imgwnd.cpp

📁 此书包含了大量的VC程序源代码,对于学习者来说是非常重要的,看后大家对VC将会有质的提高.非常经典.
💻 CPP
字号:
// ImgWnd.cpp : implementation file
//

#include "stdafx.h"
#include "ZoomImgDemo.h"
#include "ImgWnd.h"

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

/////////////////////////////////////////////////////////////////////////////
// CImgWnd

CImgWnd::CImgWnd()
{
	m_nStrechType = STRECH_1_1;
}

CImgWnd::~CImgWnd()
{
}


BEGIN_MESSAGE_MAP(CImgWnd, CStatic)
	//{{AFX_MSG_MAP(CImgWnd)
	ON_WM_PAINT()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CImgWnd message handlers
void CImgWnd::SetImage(UINT resID)
{
	m_bmpImage.LoadBitmap(resID);
}
void CImgWnd::SetStrechType(int nStrechType)
{
	m_nStrechType = nStrechType;

	//重画
	Invalidate();
}
void CImgWnd::OnPaint() 
{
	CPaintDC dc(this); // device context for painting
	
	//获得窗口大小
	CRect r;
	GetClientRect(&r);

	//填充背景
	HBRUSH brush = (HBRUSH)::GetStockObject(GRAY_BRUSH); 
	::FillRect(dc.m_hDC,&r,brush);
	dc.SetStretchBltMode(HALFTONE);

	//将位图选进设备场景中
	CDC memdc;
	memdc.CreateCompatibleDC( &dc );
	CBitmap* pOldBmp= memdc.SelectObject(&m_bmpImage);
	
	//获得位图参数
	BITMAP bmp;
	m_bmpImage.GetBitmap(&bmp);

	//开始缩放
	switch(m_nStrechType)
	{
	case STRECH_1_1://1:1
			dc.BitBlt(r.left,r.top,r.Width(),r.Height(),&memdc,0,0,SRCCOPY);
		break;
	case STRECH_FULL_X://按宽度
		dc.StretchBlt(r.left,r.top,r.Width(),bmp.bmHeight,&memdc,0,0,
			bmp.bmWidth,bmp.bmHeight,SRCCOPY);
		break;
	case STRECH_FULL_Y://按高度
		dc.StretchBlt(r.left,r.top,bmp.bmWidth,r.Height(),&memdc,0,0,
			bmp.bmWidth,bmp.bmHeight,SRCCOPY);
		break;
	case STRECH_FULL://充满窗口
		dc.StretchBlt(r.left,r.top,r.Width(),r.Height(),&memdc,0,0,
			bmp.bmWidth,bmp.bmHeight,SRCCOPY);
		break;
	case STRECH_CENTER://居中显示,大小为窗口的一半
		dc.StretchBlt(r.Width()/4,r.Height()/4,r.Width()/2,r.Height()/2,&memdc,0,0,
			bmp.bmWidth,bmp.bmHeight,SRCCOPY);
		break;
	}
	
	//还原
	memdc.SelectObject(pOldBmp);
	
}

⌨️ 快捷键说明

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