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

CAD

开发平台:

Visual C++

  1. // Line.cpp: implementation of the CLine class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "Line.h"
  6. #include "WinApp.h"
  7. extern CWinApp g_theApp;
  8. //////////////////////////////////////////////////////////////////////
  9. // Construction/Destruction
  10. //////////////////////////////////////////////////////////////////////
  11. CLine::CLine()
  12. {
  13. strcpy(m_className,"CLine");
  14. }
  15. CLine::~CLine()
  16. {
  17. }
  18. void CLine::Draw(HDC hdc)
  19. {
  20. HPEN hPen = ::CreatePen( fnPenStyle,nWidth,crColor);
  21. HPEN hOldPen = (HPEN)::SelectObject(hdc,hPen);
  22. CDraw::DrawLine(hdc,m_ptFirstPos,m_ptSecondPos);
  23. ::SelectObject(hdc,hOldPen);
  24. ::DeleteObject(hPen);
  25. if(isPick == TRUE)
  26. {
  27. DrawRect(hdc);
  28. }
  29. }
  30. BOOL CLine::pick(POINT pt) 
  31. {
  32. int dblLength  = CDraw::Distance(m_ptFirstPos,m_ptSecondPos);
  33. int dblLength1 = CDraw::Distance(m_ptFirstPos,pt);
  34. int dblLength2 = CDraw::Distance(m_ptSecondPos,pt);
  35. if(dblLength1 + dblLength2 - dblLength < 3)
  36. return TRUE;
  37. else
  38. return FALSE;
  39. }
  40. //绘制图形已被拾取的标记点
  41. void CLine::DrawRect(HDC hdc)
  42. {
  43. Ellipse(hdc,m_ptFirstPos.x - Rect,m_ptFirstPos.y - Rect,
  44. m_ptFirstPos.x + Rect,m_ptFirstPos.y + Rect);
  45. Ellipse(hdc,m_ptSecondPos.x - Rect,m_ptSecondPos.y - Rect,
  46. m_ptSecondPos.x + Rect,m_ptSecondPos.y + Rect);
  47. }