www.pudn.com > SkinListDone.rar > MEMDC.H


#ifndef _MEMDC_H_ 
#define _MEMDC_H_ 
 
////////////////////////////////////////////////// 
// CMemDC - memory DC 
// 
// Author: Keith Rule 
// Email:  keithr@europa.com 
// Copyright 1996-1997, Keith Rule 
// 
// You may freely use or modify this code provided this 
// Copyright is included in all derived versions. 
// 
// This class implements a memory Device Context 
 
class CMemDC : public CDC  
{ 
private: 
	CBitmap*	m_bitmap; 
	CBitmap*	m_oldBitmap; 
	CDC*		m_pDC; 
	CRect		m_rcBounds; 
public: 
	CMemDC(CDC* pDC, const CRect& rcBounds) : CDC() 
	{ 
		CreateCompatibleDC(pDC); 
		m_bitmap = new CBitmap; 
		m_bitmap->CreateCompatibleBitmap(pDC, rcBounds.Width(), rcBounds.Height()); 
		m_oldBitmap = SelectObject(m_bitmap); 
		m_pDC = pDC; 
		m_rcBounds = rcBounds; 
	} 
	~CMemDC()  
	{ 
		m_pDC->BitBlt(m_rcBounds.left, m_rcBounds.top, m_rcBounds.Width(), m_rcBounds.Height(),  
					this, m_rcBounds.left, m_rcBounds.top, SRCCOPY); 
		SelectObject(m_oldBitmap); 
		if (m_bitmap != NULL)  
			delete m_bitmap; 
	} 
	CMemDC* operator->()  
	{ 
		return this; 
	} 
}; 
 
#endif