XTMemDC.h
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:4k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTMemDC.h interface for the CXTMemDC class.
  2. //
  3. // This file is a part of the XTREME CONTROLS MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME TOOLKIT PRO LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. //{{AFX_CODEJOCK_PRIVATE
  21. #if !defined(__XTMEMDC_H__)
  22. #define __XTMEMDC_H__
  23. //}}AFX_CODEJOCK_PRIVATE
  24. #if _MSC_VER > 1000
  25. #pragma once
  26. #endif // _MSC_VER > 1000
  27. #include "Common/XTPColorManager.h"
  28. //===========================================================================
  29. // Summary:
  30. //     CXTMemDC is a CDC derived class. CXTMemDC is an extension of CDC
  31. //     that helps eliminate screen flicker when windows are resized, by
  32. //     painting to an off screen bitmap. The class then uses CDC::BitBlt
  33. //     to copy the bitmap back into the current device context after all
  34. //     items have been painted.
  35. //===========================================================================
  36. class _XTP_EXT_CLASS CXTMemDC : public CDC
  37. {
  38. DECLARE_DYNAMIC(CXTMemDC)
  39. public:
  40. //-----------------------------------------------------------------------
  41. // Summary:
  42. //     Constructs a CXTMemDC object used for flicker free drawing.
  43. // Parameters:
  44. //     pDC    - A Pointer to the current device context.
  45. //     rect   - Represents the size of the area to paint.
  46. //     crBack - An RGB color value that represents the background color. If
  47. //              no value is specified the system face color for three
  48. //              dimensional display elements is used.
  49. //     bHorz  - If crBack contains gradient colors indicates the direction
  50. //              of the gradient fill.
  51. //-----------------------------------------------------------------------
  52. CXTMemDC(CDC* pDC, const CRect& rect, CXTPPaintManagerColorGradient crBack = GetXtremeColor(COLOR_3DFACE), BOOL bHorz = FALSE);
  53. //-----------------------------------------------------------------------
  54. // Summary:
  55. //     Destroys a CXTMemDC object, handles cleanup and deallocation
  56. //-----------------------------------------------------------------------
  57. virtual ~CXTMemDC();
  58. public:
  59. //-----------------------------------------------------------------------
  60. // Summary:
  61. //     This member function is called to set the valid flag to false
  62. //     so that the off screen device context will not be drawn.
  63. //-----------------------------------------------------------------------
  64. void Discard();
  65. //-----------------------------------------------------------------------
  66. // Summary:
  67. //     This member function gets content from the given DC
  68. //-----------------------------------------------------------------------
  69. void FromDC();
  70. //-----------------------------------------------------------------------
  71. // Summary:
  72. //     This member function retrieves a reference to the CBitmap
  73. //     object associated with the memory device context.
  74. // Returns:
  75. //     A reference to the CBitmap object associated with the memory
  76. //     device context.
  77. //-----------------------------------------------------------------------
  78. CBitmap& GetBitmap();
  79. //-----------------------------------------------------------------------
  80. // Summary:
  81. //     Call this member function to determine if memory was allocated and
  82. //     the device context was successfully created.
  83. // Returns:
  84. //     TRUE if the device context is valid, otherwise FALSE.
  85. //-----------------------------------------------------------------------
  86. BOOL IsValid() const;
  87. protected:
  88. CDC*    m_pDC;          // Saves the CDC passed in constructor.
  89. BOOL    m_bValid;       // Flag used for autodraw in destructor.
  90. CRect   m_rc;           // Rectangle of the drawing area.
  91. CBitmap m_bitmap;       // Off screen bitmap.
  92. HBITMAP m_hOldBitmap;   // Original GDI object.
  93. };
  94. #endif // #if !defined(__XTMEMDC_H__)