设为首页 加入收藏

TOP

2.3.2 具体编码(1)
2013-10-07 15:54:41 来源: 作者: 【 】 浏览:82
Tags:2.3.2 具体 编码

2.3.2  具体编码(1)

设计界面完毕后,开始步入正式编码阶段。

(1) 定义函数OnInitDialog(),用于实现界面初始化工作。具体代码如下:

  1. BOOL CNBTSTATDlg::OnInitDialog()  
  2. {  
  3. CDialog::OnInitDialog();  
  4. SetIcon(m_hIcon, TRUE);   
  5. SetIcon(m_hIcon, FALSE);  
  6. m_IPEdit1.SetAddress(210,28,128,1); //设置IP地址默认范围  
  7. m_IPEdit2.SetAddress(210,28,143,255);  
  8. wait_handle = CreateEvent(NULL,true,false,"receive data"); //创建处于非触  
  9. //发状态的事件。类型为手动  
  10. GetDlgItem(IDC_BTN_EXIT)->EnableWindow(false);  
  11. m_spin.SetRange(100, 10000);  
  12. m_spin.SetPos(100);  
  13. // -----------------ListView 初始化---------------------  
  14. DWORD dwStyle = GetWindowLong(m_ListView.GetSafeHwnd(), GWL_STYLE);  
  15. dwStyle &= ~LVS_TYPEMASK;  
  16. dwStyle |= LVS_REPORT;  
  17. SetWindowLong(m_ListView.GetSafeHwnd(), GWL_STYLE, dwStyle);  
  18. m_ListView.InsertColumn(0, "MAC地址", LVCFMT_LEFT, 120);  
  19. m_ListView.InsertColumn(0, "用户\\其他", LVCFMT_LEFT, 100);  
  20. m_ListView.InsertColumn(0, "主机", LVCFMT_LEFT, 80);  
  21. m_ListView.InsertColumn(0, "工作组", LVCFMT_LEFT, 80);  
  22. m_ListView.InsertColumn(0, "IP地址", LVCFMT_LEFT, 100);  
  23. m_ListView.SetExtendedStyle(LVS_EX_GRIDLINES);  
  24. ::SendMessage(m_ListView.m_hWnd, LVM_SETEXTENDEDLISTVIEWSTYLE,  
  25. LVS_EX_FULLROWSELECT, LVS_EX_FULLROWSELECT);  
  26. return TRUE;  // return TRUE  unless you set the focus to a control  
  27. }  

(2) 编写函数OnBtnSend(),用于创建扫描线程,启动扫描工作。具体代码如下:
  1. void CNBTSTATDlg::OnBtnSend()   
  2. {  
  3. //从IP控件得到要查询的IP范围  
  4. m_IPEdit1.GetAddress(B1[0], B1[1], B1[2], B1[3]);  
  5. m_IPEdit2.GetAddress(B2[0], B2[1], B2[2], B2[3]);  
  6. //判断IP范围是否合法  
  7. if(B2[2] < B1[2])  
  8. { AfxMessageBox("终止地址应大于起始地址!"); return; }  
  9. else if(B2[2]==B1[2] && B2[3]<B1[3])  
  10. { AfxMessageBox("终止地址应大于起始地址!"); return; }  
  11. if(B2[0]!=B1[0] || B2[1]!=B1[1])  
  12. { AfxMessageBox("不支持A类或B类网!"); return; }  
  13. //设置相关按钮状态  
  14. GetDlgItem(IDC_BTN_SEND)->EnableWindow(false);  
  15. GetDlgItem(IDC_EDIT1)->EnableWindow(false);  
  16. GetDlgItem(IDC_SPIN1)->EnableWindow(false);  
  17. GetDlgItem(IDC_IPADDRESS1)->EnableWindow(false);  
  18. GetDlgItem(IDC_IPADDRESS2)->EnableWindow(false);  
  19. GetDlgItem(IDC_BTN_EXIT)->EnableWindow(true);  
  20. //启动线程  
  21. AfxBeginThread(NbtstatThread, this->GetSafeHwnd(),  
  22. THREAD_PRIORITY_NORMAL);  
  23. }  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇2.3.1 设计界面 下一篇2.3.2 具体编码(2)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)
·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)