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

对话框与窗口

开发平台:

Visual C++

  1. // XTHelpers.h interface
  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. #if !defined(__XTHELPERS_H__)
  21. #define __XTHELPERS_H__
  22. #if _MSC_VER > 1000
  23. #pragma once
  24. #endif // _MSC_VER > 1000
  25. // Safely selects object into device context
  26. template <class T>
  27. class CXTContextObjectHandler
  28. {
  29. T* m_pObject;
  30. CDC* m_pDC;
  31. public:
  32. CXTContextObjectHandler(CDC* pDC, T* object)
  33. : m_pDC(pDC), m_pObject(pDC->SelectObject(object))
  34. {  }
  35. ~CXTContextObjectHandler()
  36. {
  37. if (m_pObject)
  38. {
  39. m_pDC->SelectObject(m_pObject);
  40. }
  41. }
  42. };
  43. // Background mode context handler
  44. class CXTContextBkModeHandler
  45. {
  46. int m_nMode;
  47. CDC* m_pDC;
  48. public:
  49. CXTContextBkModeHandler(CDC* pDC, int nNewMode)
  50. : m_pDC(pDC), m_nMode(pDC->SetBkMode(nNewMode))
  51. { }
  52. ~CXTContextBkModeHandler()
  53. {
  54. m_pDC->SetBkMode(m_nMode);
  55. }
  56. };
  57. // Text color context handler
  58. class CXTContextTextColorHandler
  59. {
  60. COLORREF m_clrFore;
  61. CDC* m_pDC;
  62. public:
  63. CXTContextTextColorHandler(CDC* pDC, int clrFore)
  64. : m_pDC(pDC), m_clrFore(pDC->SetTextColor(clrFore))
  65. { }
  66. ~CXTContextTextColorHandler()
  67. {
  68. m_pDC->SetTextColor(m_clrFore);
  69. }
  70. };
  71. // Background color context handler
  72. class CXTContextBkColorHandler
  73. {
  74. COLORREF m_clrBack;
  75. CDC* m_pDC;
  76. public:
  77. CXTContextBkColorHandler(CDC* pDC, int clrBack)
  78. : m_pDC(pDC), m_clrBack(pDC->SetBkColor(clrBack))
  79. { }
  80. ~CXTContextBkColorHandler()
  81. {
  82. m_pDC->SetBkColor(m_clrBack);
  83. }
  84. };
  85. // Handles viewport origin
  86. class CXTContextViewPortOrgHandler
  87. {
  88. CPoint  m_pointOrigin;
  89. CDC* m_pDC;
  90. public:
  91. CXTContextViewPortOrgHandler(CDC* pDC, const CPoint& pointOrigin)
  92. : m_pDC(pDC), m_pointOrigin(pDC->SetViewportOrg(pointOrigin))
  93. { }
  94. ~CXTContextViewPortOrgHandler()
  95. {
  96. m_pDC->SetViewportOrg(m_pointOrigin);
  97. }
  98. };
  99. #endif // #if !defined(__XTHELPERS_H__)