Mymemdc.h
上传用户:swkcbjrc
上传日期:2016-04-02
资源大小:45277k
文件大小:1k
源码类别:

游戏

开发平台:

Visual C++

  1. #ifndef _MEMDC_H_
  2. #define _MEMDC_H_
  3. //////////////////////////////////////////////////
  4. // CMemDC - memory DC
  5. //
  6. // Author: Keith Rule
  7. // Email:  keithr@europa.com
  8. // Copyright 1996-1997, Keith Rule
  9. //
  10. // You may freely use or modify this code provided this
  11. // Copyright is included in all derived versions.
  12. //
  13. // This class implements a memory Device Context
  14. class CMyMemDC : public CDC {
  15. private:
  16. CBitmap* m_bitmap;
  17. CBitmap* m_oldBitmap;
  18. CDC* m_pDC;
  19. CRect m_rcBounds;
  20. public:
  21. CMyMemDC(CDC* pDC, const CRect& rcBounds) : CDC()
  22. {
  23. CreateCompatibleDC(pDC);
  24. m_bitmap = new CBitmap;
  25. m_bitmap->CreateCompatibleBitmap(pDC, rcBounds.Width(), rcBounds.Height());
  26. m_oldBitmap = SelectObject(m_bitmap);
  27. m_pDC = pDC;
  28. m_rcBounds = rcBounds;
  29. }
  30. ~CMyMemDC() 
  31. {
  32. m_pDC->BitBlt(m_rcBounds.left, m_rcBounds.top, m_rcBounds.Width(), m_rcBounds.Height(), 
  33. this, m_rcBounds.left, m_rcBounds.top, SRCCOPY);
  34. SelectObject(m_oldBitmap);
  35. if (m_bitmap != NULL) delete m_bitmap;
  36. }
  37. CMyMemDC* operator->() {
  38. return this;
  39. }
  40. };
  41. #endif