MoveRectangle.cpp
上传用户:hehe2haha
上传日期:2013-08-16
资源大小:161k
文件大小:1k
源码类别:

CAD

开发平台:

Visual C++

  1. // MoveRectangle.cpp: implementation of the CMoveRectangle class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "MoveRectangle.h"
  6. //////////////////////////////////////////////////////////////////////
  7. // Construction/Destruction
  8. //////////////////////////////////////////////////////////////////////
  9. CMoveRectangle::CMoveRectangle()
  10. {
  11. }
  12. CMoveRectangle::CMoveRectangle(CShape *Shape)
  13. {
  14. pShape = Shape;
  15. }
  16. CMoveRectangle::~CMoveRectangle()
  17. {
  18. }
  19. void CMoveRectangle::Move(HDC hdc, int xOffset, int yOffset)
  20. {
  21. int nOldMode = ::SetROP2(hdc,R2_XORPEN);
  22. HPEN hPen    = ::CreatePen( PenStyle,
  23.        PenWidth,
  24.        PenColor^ GetBkColor(hdc) );
  25. HPEN hOldPen = (HPEN)::SelectObject(hdc,hPen);
  26. //不进行填充
  27. ::SelectObject(hdc,GetStockObject(NULL_BRUSH));
  28. //擦去前一次
  29. Rectangle( hdc,              
  30.    pShape->m_ptFirstPos.x,   
  31.    pShape->m_ptFirstPos.y,   
  32.    pShape->m_ptSecondPos.x,  
  33.    pShape->m_ptSecondPos.y   
  34.  );
  35. pShape->m_ptFirstPos.x  += xOffset;
  36. pShape->m_ptFirstPos.y  += yOffset;
  37. pShape->m_ptSecondPos.x += xOffset;
  38. pShape->m_ptSecondPos.y += yOffset;
  39. //画出这一次
  40. Rectangle( hdc,              
  41.    pShape->m_ptFirstPos.x,   
  42.    pShape->m_ptFirstPos.y,   
  43.    pShape->m_ptSecondPos.x,  
  44.    pShape->m_ptSecondPos.y   
  45.  );
  46. ::SetROP2(hdc,nOldMode);
  47. ::SelectObject(hdc,hOldPen);
  48. ::DeleteObject(hPen);
  49. }