Index: modules/App Framework/MemDC.h =================================================================== diff -u -N --- modules/App Framework/MemDC.h (revision 3e1186252ab31f63d86d86c4b0ff593cfffbefde) +++ modules/App Framework/MemDC.h (revision 0) @@ -1,106 +0,0 @@ -/************************************************************************ - Copy Handler 1.x - program for copying data in Microsoft Windows - systems. - Copyright (C) 2001-2003 Ixen Gerthannes (ixen@interia.pl) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. -*************************************************************************/ -/////////////////////////////////////////////////////////////// -// 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. -// -/////////////////////////////////////////////////////////////// -#ifndef _MEMDC_H_ -#define _MEMDC_H_ - -/////////////////////////////////////////////////////////////// -// BCMenuMemDC - 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. -// -// History - 10/3/97 Fixed scrolling bug. -// Added print support. -// 25 feb 98 - fixed minor assertion bug -// -// This class implements a memory Device Context -/////////////////////////////////////////////////////////////// -class CMemDC : public CDC -{ -public: - - // constructor sets up the memory DC - CMemDC(CDC* pDC, LPCRECT lpSrcRect) : CDC() - { - ASSERT(pDC != NULL); - - m_rect.CopyRect(lpSrcRect); - m_pDC = pDC; - m_pOldBitmap = NULL; - m_bMemDC = !pDC->IsPrinting(); - - if (m_bMemDC) // Create a Memory DC - { - CreateCompatibleDC(pDC); - m_bitmap.CreateCompatibleBitmap(pDC, m_rect.Width(), m_rect.Height()); - m_pOldBitmap = SelectObject(&m_bitmap); - SetWindowOrg(m_rect.left, m_rect.top); - } - else // Make a copy of the relevent parts of the current DC for printing - { - m_bPrinting = pDC->m_bPrinting; - m_hDC = pDC->m_hDC; - m_hAttribDC = pDC->m_hAttribDC; - } - } - - // Destructor copies the contents of the mem DC to the original DC - ~CMemDC() - { - if (m_bMemDC) - { - // Copy the offscreen bitmap onto the screen. - m_pDC->BitBlt(m_rect.left, m_rect.top, m_rect.Width(), m_rect.Height(), - this, m_rect.left, m_rect.top, SRCCOPY); - - //Swap back the original bitmap. - SelectObject(m_pOldBitmap); - } else { - // All we need to do is replace the DC with an illegal value, - // this keeps us from accidently deleting the handles associated with - // the CDC that was passed to the constructor. - m_hDC = m_hAttribDC = NULL; - } - } - -private: - CBitmap m_bitmap; // Offscreen bitmap - CBitmap* m_pOldBitmap; // bitmap originally found in BCMenuMemDC - CDC* m_pDC; // Saves CDC passed in constructor - CRect m_rect; // Rectangle of drawing area. - BOOL m_bMemDC; // TRUE if CDC really is a Memory DC. -}; - -#endif \ No newline at end of file