memdc.cpp

来自「Under CE4.2 view bitmap with shrink and 」· C++ 代码 · 共 64 行

CPP
64
字号
// MemDC.cpp: implementation of the CMemDC class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "MemDC.h"

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

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CMemDC::CMemDC()
{
	m_hOldBmp = NULL;
}

void CMemDC::CreateMemDC(int nWidth,int nHeight)
{

	if (m_hOldBmp != NULL)
	{
		HBITMAP hBmp;
		hBmp = (HBITMAP)SelectObject(m_hDC, m_hOldBmp);
		VERIFY(DeleteObject(hBmp));
		DeleteDC(m_hDC);
		m_hOldBmp = NULL;
		m_hDC = NULL;
	}

	HDC hDC = ::GetDC(NULL);
	m_hDC = CreateCompatibleDC(hDC);
	HBITMAP hBmp = CreateCompatibleBitmap(hDC, nWidth, nHeight);
	m_hOldBmp = (HBITMAP)SelectObject(m_hDC, hBmp);
	::ReleaseDC(NULL, hDC);
}

CMemDC::CMemDC(int nWidth,int nHeight)
{
	HDC hDC = ::GetDC(NULL);
	m_hDC = CreateCompatibleDC(hDC);
	HBITMAP hBmp = CreateCompatibleBitmap(hDC, nWidth, nHeight);
	m_hOldBmp = (HBITMAP)SelectObject(m_hDC, hBmp);
	::ReleaseDC(NULL, hDC);
}

CMemDC::~CMemDC()
{
	if (m_hOldBmp != NULL)
	{
		HBITMAP hBmp;
		hBmp = (HBITMAP)SelectObject(m_hDC, m_hOldBmp);
		DeleteObject(hBmp);
		DeleteDC(m_hDC);
		m_hOldBmp = NULL;
		m_hDC = NULL;
	}
}

⌨️ 快捷键说明

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