仿真模型View.cpp
上传用户:vipking888
上传日期:2015-02-03
资源大小:93k
文件大小:4k
源码类别:

3G开发

开发平台:

Visual C++

  1. // 仿真模型View.cpp : implementation of the CMyView class
  2. //
  3. #include "stdafx.h"
  4. #include "仿真模型.h"
  5. #include "仿真模型Doc.h"
  6. #include "仿真模型View.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CMyView
  14. IMPLEMENT_DYNCREATE(CMyView, CView)
  15. BEGIN_MESSAGE_MAP(CMyView, CView)
  16. //{{AFX_MSG_MAP(CMyView)
  17. ON_COMMAND(ID_FANGZHEN, OnFangzhen)
  18. //}}AFX_MSG_MAP
  19. // Standard printing commands
  20. ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
  21. ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
  22. ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
  23. END_MESSAGE_MAP()
  24. /////////////////////////////////////////////////////////////////////////////
  25. // CMyView construction/destruction
  26. CMyView::CMyView()
  27. {
  28. // TODO: add construction code here
  29. }
  30. CMyView::~CMyView()
  31. {
  32. }
  33. BOOL CMyView::PreCreateWindow(CREATESTRUCT& cs)
  34. {
  35. // TODO: Modify the Window class or styles here by modifying
  36. //  the CREATESTRUCT cs
  37. return CView::PreCreateWindow(cs);
  38. }
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CMyView drawing
  41. void CMyView::OnDraw(CDC* pDC)
  42. {
  43. CMyDoc* pDoc = GetDocument();
  44. ASSERT_VALID(pDoc);
  45. // TODO: add draw code for native data here
  46. }
  47. /////////////////////////////////////////////////////////////////////////////
  48. // CMyView printing
  49. BOOL CMyView::OnPreparePrinting(CPrintInfo* pInfo)
  50. {
  51. // default preparation
  52. return DoPreparePrinting(pInfo);
  53. }
  54. void CMyView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  55. {
  56. // TODO: add extra initialization before printing
  57. }
  58. void CMyView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
  59. {
  60. // TODO: add cleanup after printing
  61. }
  62. /////////////////////////////////////////////////////////////////////////////
  63. // CMyView diagnostics
  64. #ifdef _DEBUG
  65. void CMyView::AssertValid() const
  66. {
  67. CView::AssertValid();
  68. }
  69. void CMyView::Dump(CDumpContext& dc) const
  70. {
  71. CView::Dump(dc);
  72. }
  73. CMyDoc* CMyView::GetDocument() // non-debug version is inline
  74. {
  75. ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CMyDoc)));
  76. return (CMyDoc*)m_pDocument;
  77. }
  78. #endif //_DEBUG
  79. /////////////////////////////////////////////////////////////////////////////
  80. // CMyView message handlers
  81. void CMyView::OnFangzhen() 
  82. {
  83. // TODO: Add your command handler code here
  84. CStdioFile file;
  85. if(!file.Open("output1.txt",CFile::modeRead))
  86. MessageBox("no file is opened");
  87. CClientDC dc(this);
  88. dc.SetViewportOrg(150,50); 
  89. CString str,str1;
  90. LPTSTR p;
  91. int m,n,m1,n1,i=0;
  92. float d1,d2,d3,d4;
  93. CBrush *oldbr;
  94. //CBrush br1(RGB(0,125,255));
  95. //CBrush br2(RGB(255,0,255));
  96. //CBrush br3(RGB(255,255,0));
  97. CBrush br1(RGB(0,0,0));
  98. CBrush br2(RGB(255,255,255));
  99. CBrush br3(RGB(255,255,0));
  100. while(file.ReadString(str))
  101. {
  102. if(i<=10&&i>0)
  103. {
  104.           m=str.Find(' ',0);
  105.           n=str.Find(' ',m+1);
  106.           str1=str.Mid(0,m);
  107.           p=str1.GetBuffer(10);
  108.   d1=atof(p)*4;
  109.   str1=str.Mid(m+1,n-m-1);
  110.           p=str1.GetBuffer(10);
  111.   d2=atof(p)*4;
  112.     
  113.   oldbr=dc.SelectObject(&br1);
  114.   dc.Ellipse(d1-3.5,d2-3.5,d1+3.5,d2+3.5);  //卯接点
  115. }
  116.         else if(i>10)
  117. {
  118.   m=str.Find(' ',0);
  119.           n=str.Find(' ',m+1);
  120.   m1=str.Find(' ',n+1);
  121.   n1=str.Find(' ',m1+1);
  122.   str1=str.Mid(0,m);
  123.           p=str1.GetBuffer(10);
  124.   d1=atof(p)*4;
  125.   str1=str.Mid(m+1,n-m-1);
  126.           p=str1.GetBuffer(10);
  127.   d2=atof(p)*4;
  128.   str1=str.Mid(n+1,m1-n-1);
  129.           p=str1.GetBuffer(10);
  130.   d3=atof(p)*4;
  131.   str1=str.Mid(m1+1,n1-m1-1);
  132.           p=str1.GetBuffer(10);
  133.   d4=atof(p)*4;
  134.   oldbr=dc.SelectObject(&br2);
  135.   dc.Ellipse(d1-3.5,d2-3.5,d1+3.5,d2+3.5);//实际接点
  136. /*
  137.   dc.MoveTo(d1-5,d2);
  138.   dc.LineTo(d1+5,d2);
  139.   dc.MoveTo(d1,d2+5);
  140.   dc.LineTo(d1,d2-5);
  141.  */ 
  142.   oldbr=dc.SelectObject(&br3);
  143.   //dc.Ellipse(d3-5,d4-5,d3+5,d4+5); //计算接点
  144. /*
  145.   dc.MoveTo(d3,d4+3);
  146.   dc.LineTo(d3-3,d4-3);
  147.   dc.LineTo(d3+3,d4-3);
  148.   dc.LineTo(d3,d4+3);
  149.   */
  150.   
  151.   dc.MoveTo(d3-3,d4);
  152.   dc.LineTo(d3+4,d4);
  153.   dc.MoveTo(d3,d4+3);
  154.   dc.LineTo(d3,d4-4);         
  155.   
  156. //  dc.MoveTo(d1,d2);
  157. //  dc.LineTo(d3,d4);
  158. }
  159. i++;
  160. }
  161. }