MainView.cpp
上传用户:lvjun8202
上传日期:2013-04-30
资源大小:797k
文件大小:7k
源码类别:

SNMP编程

开发平台:

C/C++

  1. // MainView.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "oam.h"
  5. #include "MainView.h"
  6. #include "MainFrm.h"
  7. //#include "cmdTreeSetup.h"
  8. #include "GlobalVariable.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. /////////////////////////////////////////////////////////////////////////////
  15. // CMainView
  16. IMPLEMENT_DYNCREATE(CMainView, CFormView)
  17. CMainView::CMainView()
  18. : CFormView(CMainView::IDD)
  19. {
  20. //{{AFX_DATA_INIT(CMainView)
  21. m_IP = _T("");
  22. //}}AFX_DATA_INIT
  23. /* id[12][4]={{IDC_00,IDC_01,IDC_02,IDC_BOARD1},{IDC_10,IDC_11,IDC_12,IDC_BOARD2},
  24. {IDC_20,IDC_21,IDC_22,IDC_BOARD3},
  25. {IDC_30,IDC_31,IDC_32,IDC_BOARD4},
  26. {IDC_40,IDC_41,IDC_42,IDC_BOARD5},
  27. {IDC_50,IDC_51,IDC_52,IDC_BOARD6},
  28. {IDC_60,IDC_61,IDC_62,IDC_BOARD7},
  29. {IDC_70,IDC_71,IDC_72,IDC_BOARD8},
  30. {IDC_80,IDC_81,IDC_82,IDC_BOARD9},
  31. {IDC_90,IDC_91,IDC_92,IDC_BOARD10},
  32. {IDC_100,IDC_101,IDC_102,IDC_BOARD11},
  33. {IDC_110,IDC_111,IDC_112,IDC_BOARD12}};*/
  34. /*将各个板中对应的id保存*/
  35. //
  36. id[0][0]=IDC_00;id[0][1]=IDC_01;id[0][2]=IDC_02;id[0][3]=IDC_BOARD1;
  37. id[1][0]=IDC_10;id[1][1]=IDC_11;id[1][2]=IDC_12;id[1][3]=IDC_BOARD2;
  38. id[2][0]=IDC_20;id[2][1]=IDC_21;id[2][2]=IDC_22;id[2][3]=IDC_BOARD3;
  39. id[3][0]=IDC_30;id[3][1]=IDC_31;id[3][2]=IDC_32;id[3][3]=IDC_BOARD4;
  40. id[4][0]=IDC_40;id[4][1]=IDC_41;id[4][2]=IDC_42;id[4][3]=IDC_BOARD5;
  41. id[5][0]=IDC_50;id[5][1]=IDC_51;id[5][2]=IDC_52;id[5][3]=IDC_BOARD6;
  42. id[6][0]=IDC_60;id[6][1]=IDC_61;id[6][2]=IDC_62;id[6][3]=IDC_BOARD7;
  43. id[7][0]=IDC_70;id[7][1]=IDC_71;id[7][2]=IDC_72;id[7][3]=IDC_BOARD8;
  44. id[8][0]=IDC_80;id[8][1]=IDC_81;id[8][2]=IDC_82;id[8][3]=IDC_BOARD9;
  45. id[9][0]=IDC_90;id[9][1]=IDC_91;id[9][2]=IDC_92;id[9][3]=IDC_BOARD10;
  46. id[10][0]=IDC_100;id[10][1]=IDC_101;id[10][2]=IDC_102;id[10][3]=IDC_BOARD11;
  47. id[11][0]=IDC_110;id[11][1]=IDC_111;id[11][2]=IDC_112;id[11][3]=IDC_BOARD12;
  48. id[12][0]=IDC_120;id[12][1]=IDC_121;id[12][2]=IDC_122;id[12][3]=IDC_BOARD13;
  49. id[13][0]=IDC_130;id[13][1]=IDC_131;id[13][2]=IDC_132;id[13][3]=IDC_BOARD14;
  50. id[14][0]=IDC_140;id[14][1]=IDC_141;id[14][2]=IDC_142;id[14][3]=IDC_BOARD15;
  51. id[15][0]=IDC_150;id[15][1]=IDC_151;id[15][2]=IDC_152;id[15][3]=IDC_BOARD16;
  52.   
  53. }
  54. CMainView::~CMainView()
  55. {
  56. }
  57. void CMainView::DoDataExchange(CDataExchange* pDX)
  58. {
  59. CFormView::DoDataExchange(pDX);
  60. //{{AFX_DATA_MAP(CMainView)
  61. DDX_Control(pDX, IDC_NEWIP, m_cIP);
  62. DDX_Text(pDX, IDC_NEWIP, m_IP);
  63. //}}AFX_DATA_MAP
  64. }
  65. BEGIN_MESSAGE_MAP(CMainView, CFormView)
  66. //{{AFX_MSG_MAP(CMainView)
  67. ON_BN_CLICKED(IDC_CLICK, OnClick)
  68. ON_BN_CLICKED(IDC_REFRESH, OnRefresh)
  69. ON_WM_TIMER()
  70. ON_EN_CHANGE(IDC_NEWIP, OnChangeNewip)
  71. ON_WM_SIZE()
  72. //}}AFX_MSG_MAP
  73. END_MESSAGE_MAP()
  74. /////////////////////////////////////////////////////////////////////////////
  75. // CMainView diagnostics
  76. #ifdef _DEBUG
  77. void CMainView::AssertValid() const
  78. {
  79. CFormView::AssertValid();
  80. }
  81. void CMainView::Dump(CDumpContext& dc) const
  82. {
  83. CFormView::Dump(dc);
  84. }
  85. #endif //_DEBUG
  86. /////////////////////////////////////////////////////////////////////////////
  87. // CMainView message handlers
  88. BOOL CMainView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
  89. {
  90.    
  91. return CFormView::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
  92. }
  93. void CMainView::OnDraw(CDC* pDC) 
  94. {
  95. // SetTimer(1, 15000, NULL);/*设置定时器*/
  96. CWnd* pStatic = GetDlgItem(IDC_IP);
  97. pStatic->SetWindowText(CGlobalVariable::m_pMainFrame->m_agent);      
  98.    
  99. // GetStatus(CGlobalVariable::m_pMainFrame->test);
  100.     
  101.     
  102. }
  103. void CMainView::GetStatus(int status[16][4])
  104. {
  105.     /****************************************/
  106. CRect rect;
  107. CBrush brush2((RGB(255,0,0)));
  108. CBrush brush1((RGB(255,255,0)));
  109. CBrush brush3((RGB(192,192,192)));
  110. CBrush brush;
  111. CWnd* pStatic;
  112.   
  113. int i,j;
  114. for(i=0;i<16;i++)
  115. {
  116. if (status[i][3]==1)//表示不在位
  117. {
  118. pStatic = GetDlgItem(id[i][3]);
  119. pStatic->GetWindowRect(&rect);
  120. pStatic->ScreenToClient(&rect);
  121. brush.CreateStockObject(GRAY_BRUSH);
  122. ResizeFill(rect,0);
  123. pStatic->GetDC ()->FillRect(rect, &brush);
  124. }
  125. else
  126. {
  127. pStatic = GetDlgItem(id[i][3]);
  128. pStatic->GetWindowRect(&rect);
  129. pStatic->ScreenToClient(&rect);
  130. ResizeFill(rect,0);
  131. pStatic->GetDC ()->FillRect(rect, &brush3);
  132.         for (j=0;j<3;j++)
  133. {
  134. pStatic = GetDlgItem(id[i][j]);
  135. pStatic->GetWindowRect(&rect);
  136. pStatic->ScreenToClient(&rect);
  137. ResizeFill(rect,1);
  138. if (status[i][j]==0)
  139. pStatic->GetDC ()->FillRect(rect, &brush1);
  140. else
  141. pStatic->GetDC ()->FillRect(rect, &brush2);
  142. }// end for 2
  143. }// end else
  144. }// end for1
  145. /****************************************/
  146. /*判断电源的状态*/
  147. pStatic = GetDlgItem(IDC_POWER1);
  148. pStatic->GetWindowRect(&rect);
  149. pStatic->ScreenToClient(&rect);
  150. ResizeFill(rect,1);
  151. if (power[0]==1)
  152. pStatic->GetDC ()->FillRect(rect, &brush1);
  153. else
  154. pStatic->GetDC ()->FillRect(rect, &brush2);
  155. pStatic = GetDlgItem(IDC_POWER2);
  156. pStatic->GetWindowRect(&rect);
  157. pStatic->ScreenToClient(&rect);
  158. ResizeFill(rect,1);
  159. if (power[1]==1)
  160. pStatic->GetDC ()->FillRect(rect, &brush1);
  161. else
  162. pStatic->GetDC ()->FillRect(rect, &brush2);
  163.   }
  164. void CMainView::OnRefresh() 
  165. {
  166.  
  167. CString str1;
  168. str1="1.3.6.1.4.1.26.5.1.5.1";
  169.     CGlobalVariable::m_pMainFrame->Start(5);
  170.     int i;
  171. for(i=0;i<20000;i++)
  172. ;
  173.  // GetStatus(CGlobalVariable::m_pMainFrame->test);
  174.   
  175.   this->UpdateWindow();
  176.   this->PostMessage(WM_SIZE);
  177.   GetStatus(CGlobalVariable::m_pMainFrame->test);
  178.  
  179. }
  180. void CMainView::OnClick() 
  181. {
  182. // TODO: Add your control notification handler code here
  183. GetStatus(CGlobalVariable::m_pMainFrame->test);
  184. }
  185. void CMainView::ResizeFill(CRect& rect,int flag)
  186. {
  187. if (flag==0)   
  188. {
  189.   rect.left+=2;
  190.   rect.right-=4;
  191.   rect.top+=4;
  192.   rect.bottom-=4;
  193. }
  194. else
  195. {
  196.       rect.left+=0.25;
  197.   rect.right-=0.5;
  198.   rect.top+=0.5;
  199.   rect.bottom-=0.5;
  200. }
  201. }
  202.  void CMainView::OnTimer(UINT nIDEvent) 
  203. {
  204. CFormView::OnTimer(nIDEvent);
  205. CGlobalVariable::m_pMainFrame->m_wndReportBar.WriteReportLine("----定时器-----", 0);
  206. OnRefresh();  
  207. // CFormView::OnTimer(nIDEvent);
  208. }
  209. void CMainView::OnChangeNewip() 
  210. {
  211. // TODO: If this is a RICHEDIT control, the control will not
  212. // send this notification unless you override the CFormView::OnInitDialog()
  213. // function and call CRichEditCtrl().SetEventMask()
  214. // with the ENM_CHANGE flag ORed into the mask.
  215. // TODO: Add your control notification handler code here
  216. UpdateData(TRUE);
  217. }