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

对话框与窗口

开发平台:

Visual C++

  1. // XTResizeRect.cpp: implementation of the CXTResizeRect 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. #include "stdafx.h"
  21. #include "XTResizeRect.h"
  22. #ifdef _DEBUG
  23. #undef THIS_FILE
  24. static char THIS_FILE[] = __FILE__;
  25. #define new DEBUG_NEW
  26. #endif
  27. //////////////////////////////////////////////////////////////////////
  28. // Construction/Destruction
  29. //////////////////////////////////////////////////////////////////////
  30. CXTResizeRect::CXTResizeRect()
  31. {
  32. left = top = right = bottom = 0;
  33. }
  34. //////////////////////////////////////////////////////////////////////
  35. CXTResizeRect::CXTResizeRect(XT_RESIZE l, XT_RESIZE t, XT_RESIZE r, XT_RESIZE b)
  36. {
  37. left = l;
  38. top = t;
  39. right = r;
  40. bottom = b;
  41. }
  42. CXTResizeRect& CXTResizeRect::operator=(const RECT& rc)
  43. {
  44. left = (XT_RESIZE) rc.left;
  45. top = (XT_RESIZE) rc.top;
  46. right = (XT_RESIZE) rc.right;
  47. bottom = (XT_RESIZE) rc.bottom;
  48. return *this;
  49. }
  50. CXTResizeRect& CXTResizeRect::operator=(const XT_RESIZERECT& rrc)
  51. {
  52. left = rrc.left;
  53. top = rrc.top;
  54. right = rrc.right;
  55. bottom = rrc.bottom;
  56. return *this;
  57. }
  58. CXTResizeRect& CXTResizeRect::operator+=(const XT_RESIZERECT& rrc)
  59. {
  60. left += rrc.left;
  61. top += rrc.top;
  62. right += rrc.right;
  63. bottom += rrc.bottom;
  64. return *this;
  65. }
  66. CXTResizeRect CXTResizeRect::operator & (const XT_RESIZERECT& rrc)
  67. {
  68. ASSERT(IsNormalized() && ((CXTResizeRect&) rrc).IsNormalized());
  69. CXTResizeRect rrcI(
  70. __max(left, rrc.left),
  71. __max(top, rrc.top),
  72. __min(right, rrc.right),
  73. __min(bottom, rrc.bottom));
  74. // only intersection if resulting rect is normalized
  75. return (rrcI.IsNormalized()) ? rrcI : CXTResizeRect(0, 0, 0, 0);
  76. }