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

SNMP编程

开发平台:

Visual C++

  1. // MapView.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "NetMapDoc.h"
  5. #include "NetMap.h"
  6. #include "MapView.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. // CMapView
  15. IMPLEMENT_DYNCREATE(CMapView, CFormView)
  16. CMapView::CMapView()
  17. : CFormView(CMapView::IDD)
  18. {
  19. //{{AFX_DATA_INIT(CMapView)
  20. // NOTE: the ClassWizard will add member initialization here
  21. //}}AFX_DATA_INIT
  22. }
  23. CMapView::~CMapView()
  24. {
  25. }
  26. void CMapView::DoDataExchange(CDataExchange* pDX)
  27. {
  28. CFormView::DoDataExchange(pDX);
  29. //{{AFX_DATA_MAP(CMapView)
  30. DDX_Control(pDX, IDC_TREE4, m_vlan);
  31. DDX_Control(pDX, IDC_TREE3, m_map);
  32. DDX_Control(pDX, IDC_TAB2, m_tab);
  33. //}}AFX_DATA_MAP
  34. }
  35. void CMapView::OnInitialUpdate()
  36. {
  37. CFormView::OnInitialUpdate();
  38. GetParentFrame()->RecalcLayout();
  39. ResizeParentToFit();
  40.     CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;
  41. pMain->pListView=this;
  42.     m_tab.InsertItem(0, _T("设备列表") );
  43.     m_tab.InsertItem(1, _T("VLAN列表") );
  44.     m_vlan.ShowWindow( SW_HIDE );
  45.     m_iImageList.Create(16, 16, TRUE,1, 0);
  46. HICON hIcon = NULL;
  47. //0,root;
  48. hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
  49. MAKEINTRESOURCE(IDI_SWITCH), IMAGE_ICON, 16, 16, 0);
  50. m_iImageList.Add(hIcon);
  51. //1,closed box;
  52. hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
  53. MAKEINTRESOURCE(IDI_RUNVLAN), IMAGE_ICON, 16, 16, 0);
  54. m_iImageList.Add(hIcon);
  55.     //2,opened box;
  56.     hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
  57. MAKEINTRESOURCE(IDI_DEADVLAN), IMAGE_ICON, 16, 16, 0);
  58. m_iImageList.Add(hIcon);
  59. //3,leaf node
  60.     hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
  61. MAKEINTRESOURCE(IDI_RUNPORT), IMAGE_ICON, 16, 16, 0);
  62. m_iImageList.Add(hIcon);
  63. //4,key node
  64.     hIcon = (HICON)::LoadImage(::AfxGetInstanceHandle(), 
  65. MAKEINTRESOURCE(IDI_DDEADPORT), IMAGE_ICON, 16, 16, 0);
  66. m_iImageList.Add(hIcon);
  67.     m_vlan.SetImageList (&m_iImageList,TVSIL_NORMAL);
  68. m_vlan.SetItemHeight(18);
  69. // HRoot=m_map.InsertItem("Device");
  70. // HCurrent=m_map.InsertItem("123",HRoot);
  71. // CNetMapDoc *pDoc=(CNetMapDoc *)GetDocument();
  72. // MessageBox(pDoc->s);
  73. }
  74. BEGIN_MESSAGE_MAP(CMapView, CFormView)
  75. //{{AFX_MSG_MAP(CMapView)
  76. ON_NOTIFY(TCN_SELCHANGE, IDC_TAB2, OnSelchangeTab2)
  77. ON_WM_DESTROY()
  78. //}}AFX_MSG_MAP
  79. END_MESSAGE_MAP()
  80. /////////////////////////////////////////////////////////////////////////////
  81. // CMapView diagnostics
  82. #ifdef _DEBUG
  83. void CMapView::AssertValid() const
  84. {
  85. CFormView::AssertValid();
  86. }
  87. void CMapView::Dump(CDumpContext& dc) const
  88. {
  89. CFormView::Dump(dc);
  90. }
  91. #endif //_DEBUG
  92. /////////////////////////////////////////////////////////////////////////////
  93. // CMapView message handlers
  94. void CMapView::OnSelchangeTab2(NMHDR* pNMHDR, LRESULT* pResult) 
  95. {
  96. int sel = m_tab.GetCurSel();
  97. switch(sel)
  98. {
  99. case 0:
  100. m_map.ShowWindow( SW_SHOW );
  101. m_vlan.ShowWindow( SW_HIDE );
  102. break;
  103. case 1:
  104. m_vlan.ShowWindow( SW_SHOW );
  105. m_map.ShowWindow( SW_HIDE );
  106. break;
  107. }
  108. *pResult = 0;
  109. }
  110. void CMapView::OnDestroy() 
  111. {
  112. CFormView::OnDestroy();
  113. CMainFrame *pMain=(CMainFrame *)AfxGetApp()->m_pMainWnd;
  114. CMainFrame::NodeData *p;
  115. for (int i=0;i<pMain->NodeArray.GetSize();i++)
  116. {
  117. p=(CMainFrame::NodeData *)m_map.GetItemData(pMain->NodeArray[i]);
  118.     if (p!=NULL)
  119.     {
  120. if (p->pImage!=NULL) delete p->pImage;
  121. delete p;
  122. }
  123. }
  124. CMainFrame::Vlan *p1;
  125. HTREEITEM h;
  126. h=m_vlan.GetRootItem();
  127. if (h!=NULL)
  128. {
  129. h=m_vlan.GetNextItem(h,TVGN_CHILD);
  130. p1=(CMainFrame::Vlan *)m_vlan.GetItemData(h);
  131. if (p1!=NULL) delete p1;
  132. h=m_vlan.GetNextItem(h,TVGN_NEXT);
  133. while (h!=NULL)
  134. {
  135. p1=(CMainFrame::Vlan*)m_vlan.GetItemData(h);
  136.     if (p1!=NULL) delete p1;
  137. h=m_vlan.GetNextItem(h,TVGN_NEXT);
  138. }
  139. }
  140. }