VlanView.cpp
上传用户:hbytqc8
上传日期:2014-07-31
资源大小:527k
文件大小:3k
源码类别:

SNMP编程

开发平台:

Visual C++

  1. // VlanView.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "NetMapDoc.h"
  5. #include "NetMap.h"
  6. #include "VlanView.h"
  7. #include "Mainfrm.h"
  8. #ifdef _DEBUG
  9. #define new DEBUG_NEW
  10. #undef THIS_FILE
  11. static char THIS_FILE[] = __FILE__;
  12. #endif
  13. /////////////////////////////////////////////////////////////////////////////
  14. // CVlanView
  15. IMPLEMENT_DYNCREATE(CVlanView, CFormView)
  16. CVlanView::CVlanView()
  17. : CFormView(CVlanView::IDD)
  18. {
  19. //{{AFX_DATA_INIT(CVlanView)
  20. // NOTE: the ClassWizard will add member initialization here
  21. //}}AFX_DATA_INIT
  22. }
  23. CVlanView::~CVlanView()
  24. {
  25. }
  26. void CVlanView::DoDataExchange(CDataExchange* pDX)
  27. {
  28. CFormView::DoDataExchange(pDX);
  29. //{{AFX_DATA_MAP(CVlanView)
  30. // NOTE: the ClassWizard will add DDX and DDV calls here
  31. //}}AFX_DATA_MAP
  32. }
  33. void CVlanView::OnInitialUpdate()
  34. {
  35. CFormView::OnInitialUpdate();
  36. GetParentFrame()->RecalcLayout();
  37. ResizeParentToFit();
  38. CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;
  39. pMain->pVlanView=this;
  40. paint=false;
  41. }
  42. BEGIN_MESSAGE_MAP(CVlanView, CFormView)
  43. //{{AFX_MSG_MAP(CVlanView)
  44. ON_WM_DESTROY()
  45. ON_WM_PAINT()
  46. //}}AFX_MSG_MAP
  47. END_MESSAGE_MAP()
  48. /////////////////////////////////////////////////////////////////////////////
  49. // CVlanView diagnostics
  50. #ifdef _DEBUG
  51. void CVlanView::AssertValid() const
  52. {
  53. CFormView::AssertValid();
  54. }
  55. void CVlanView::Dump(CDumpContext& dc) const
  56. {
  57. CFormView::Dump(dc);
  58. }
  59. #endif //_DEBUG
  60. /////////////////////////////////////////////////////////////////////////////
  61. // CVlanView message handlers
  62. void CVlanView::OnDestroy() 
  63. {
  64. CFormView::OnDestroy();
  65. // TODO: Add your message handler code here
  66. CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;
  67. for (int i=0;i<pMain->SwitchPortArray.GetSize();i++)
  68. {
  69.   if (pMain->SwitchPortArray[i]->pPortImage!=NULL) 
  70.   delete pMain->SwitchPortArray[i]->pPortImage; 
  71.   if (pMain->SwitchPortArray[i]->pHostImage!=NULL) 
  72.   delete pMain->SwitchPortArray[i]->pHostImage; 
  73.       delete pMain->SwitchPortArray[i];
  74. }
  75. }
  76. void CVlanView::OnPaint() 
  77. {
  78. CPaintDC dc(this); // device context for painting
  79. if (paint==true)
  80.     {
  81.     CMainFrame *pMain;
  82. pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;
  83.     CWnd *pWnd;
  84.     CRect rc;
  85.     for (int i=0;i<pMain->SwitchPortArray.GetSize();i++)
  86. {
  87.  if (pMain->SwitchPortArray[i]->HostAdd.GetSize()>=1)
  88.  {
  89.       pWnd=GetDlgItem(IDC_MYIMAGE+1000+i);
  90.       pWnd->GetWindowRect(rc);
  91.   ScreenToClient(rc);
  92.       pMain->SwitchPortArray[i]->pPortImage->MyPos.x=rc.left+16;
  93.       pMain->SwitchPortArray[i]->pPortImage->MyPos.y=rc.top+16;
  94.       pWnd=GetDlgItem(IDC_MYIMAGE+2000+i);
  95.       pWnd->GetWindowRect(rc);
  96.   ScreenToClient(rc);
  97.       pMain->SwitchPortArray[i]->pHostImage->MyPos.x=rc.left+16;
  98.       pMain->SwitchPortArray[i]->pHostImage->MyPos.y=rc.top+16;
  99.  }
  100.  }
  101.     for (i=0;i<pMain->SwitchPortArray.GetSize();i++)
  102. {
  103.      if (pMain->SwitchPortArray[i]->HostAdd.GetSize()>=1)
  104.  {
  105.         int x1=pMain->SwitchPortArray[i]->pPortImage->MyPos.x;
  106. int y1=pMain->SwitchPortArray[i]->pPortImage->MyPos.y;
  107. int x2=pMain->SwitchPortArray[i]->pHostImage->MyPos.x;
  108.         int y2=pMain->SwitchPortArray[i]->pHostImage->MyPos.y;
  109.     dc.MoveTo(x1,y1);
  110. dc.LineTo(x2,y2);
  111.  }
  112. }
  113. }
  114. // Do not call CFormView::OnPaint() for painting messages
  115. }