MULTILINE.cpp
上传用户:shangwu01
上传日期:2013-04-22
资源大小:707k
文件大小:3k
源码类别:

CAD

开发平台:

Visual C++

  1. // MULTILINE.cpp: implementation of the CMULTILINE class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "CAD.h"
  6. #include "MULTILINE.h"
  7. #ifdef _DEBUG
  8. #undef THIS_FILE
  9. static char THIS_FILE[]=__FILE__;
  10. #define new DEBUG_NEW
  11. #endif
  12. //////////////////////////////////////////////////////////////////////
  13. // Construction/Destruction
  14. //////////////////////////////////////////////////////////////////////
  15. CMULTILINE::CMULTILINE()
  16. {
  17. }
  18. CMULTILINE::~CMULTILINE()
  19. {
  20. }
  21. void CMULTILINE::multline_drawMove(CPoint m_pointfal,CDC *pDC,int m_line_style,int m_line_width,COLORREF m_line_color)
  22. {
  23. CPen pen;
  24. pen.CreatePen(m_line_style,m_line_width,m_line_color);
  25. pDC->SelectObject(&pen);
  26. pDC->TextOut(5,5,"Double click to finish the multiline");
  27. if(m_pointtemp.GetSize()>=2)
  28. for(int i=0;i<m_pointtemp.GetSize()-1;i++)
  29. {
  30. pDC->MoveTo(((CPoint *)(m_pointtemp.GetAt(i)))->x,((CPoint *)(m_pointtemp.GetAt(i)))->y);
  31. pDC->LineTo(((CPoint *)(m_pointtemp.GetAt(i+1)))->x,((CPoint *)(m_pointtemp.GetAt(i+1)))->y);
  32. }
  33. if(m_pointtemp.GetSize())
  34. {
  35. pDC->MoveTo((((CPoint *)m_pointtemp.GetAt(m_pointtemp.GetSize()-1)))->x,
  36. (((CPoint *)m_pointtemp.GetAt(m_pointtemp.GetSize()-1)))->y);
  37. pDC->LineTo(m_pointfal);
  38. }
  39. pen.DeleteObject();
  40. }
  41. void CMULTILINE::multline_drawAttribution(CDC*pDC)
  42. {
  43. if(m_multline_save.GetSize())
  44. for(int i=0;i<m_multline_save.GetSize();i++)
  45. {
  46. CPen pen;
  47. pen.CreatePen(((multline_data *)m_multline_save.GetAt(i))->m_line_style,((multline_data *)m_multline_save.GetAt(i))->m_line_width,((multline_data *)m_multline_save.GetAt(i))->m_line_color);
  48. pDC->SelectObject(&pen);
  49. for(int j=0;j<((multline_data *)m_multline_save.GetAt(i))->m_pointsave.GetSize()-1;j++)
  50. {
  51. pDC->MoveTo(((CPoint *)(((multline_data *)m_multline_save.GetAt(i))->m_pointsave.GetAt(j)))->x,((CPoint *)(((multline_data *)m_multline_save.GetAt(i))->m_pointsave.GetAt(j)))->y);
  52. pDC->LineTo(((CPoint *)(((multline_data *)m_multline_save.GetAt(i))->m_pointsave.GetAt(j+1)))->x,((CPoint *)(((multline_data *)m_multline_save.GetAt(i))->m_pointsave.GetAt(j+1)))->y);
  53. }
  54. pen.DeleteObject();
  55. }
  56. }
  57. void CMULTILINE::multline_store(int m_line_style,int m_line_width,COLORREF m_line_color)
  58. {
  59. multline_data *pmultline_data=new multline_data(&m_pointtemp,m_line_style,m_line_width,m_line_color);
  60. m_multline_save.Add(pmultline_data);
  61. m_pointtemp.RemoveAll();
  62. }
  63. /////////////////////////////////////////////////////////////////////////////////
  64. CMULTILINE::multline_data::multline_data(CPtrArray *pm_pointtemp,int m_line_style,int m_line_width,COLORREF m_line_color)
  65. {
  66. this->m_line_style=m_line_style;
  67. this->m_line_width=m_line_width;
  68. this->m_line_color=m_line_color;
  69. this->m_pointsave.Copy(*pm_pointtemp);
  70. }
  71. CMULTILINE::multline_data::~multline_data()
  72. {
  73. }