www.pudn.com > NetScan.rar > NewScanDlg.cpp
// NewScanDlg.cpp : implementation file
//
#include "stdafx.h"
#include "NetScan.h"
#include "NewScanDlg.h"
#include "MainFrm.h"
#include "NetScanView.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern volatile BOOL g_threadContral;//线程停止的标准,true为运行,false为停止;
/////////////////////////////////////////////////////////////////////////////
// CNewScanDlg dialog
CNewScanDlg::CNewScanDlg(CWnd* pParent /*=NULL*/)
: CDialog(CNewScanDlg::IDD, pParent)
{
CMainFrame* m_pParent;
m_pParent=(CMainFrame *)pParent;
m_pView=(CNetScanView *)m_pParent->GetActiveView();
//{{AFX_DATA_INIT(CNewScanDlg)
m_timeout = 100;
m_pingNumber = 1;
//}}AFX_DATA_INIT
}
void CNewScanDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CNewScanDlg)
DDX_Control(pDX, IDC_IPADDR_BEGIN, m_beginAddress);
DDX_Control(pDX, IDC_IPADDR_END, m_endAddress);
DDX_Text(pDX, IDC_TIMEOUT, m_timeout);
DDV_MinMaxInt(pDX, m_timeout, 0, 999999);
DDX_Text(pDX, IDC_PINGNUMBER, m_pingNumber);
DDV_MinMaxInt(pDX, m_pingNumber, 1, 999);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CNewScanDlg, CDialog)
//{{AFX_MSG_MAP(CNewScanDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CNewScanDlg message handlers
BOOL CNewScanDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
//设置对话框中控件的初始状态
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CNewScanDlg::OnOK()
{
UpdateData();
//------设置IP地址---------------------
unsigned int addr1,addr2;
BYTE *a,*b;
//得到开始和终止的IP地址
CIPAddressCtrl * ctrl=(CIPAddressCtrl *)GetDlgItem(IDC_IPADDR_BEGIN);
a=(BYTE *)&addr1;
ctrl->GetAddress(a[3],a[2],a[1],a[0]);
ctrl=(CIPAddressCtrl *)GetDlgItem(IDC_IPADDR_END);
b=(BYTE *)&addr2;
ctrl->GetAddress(b[3],b[2],b[1],b[0]);
//判断终止地址是否比起始地址大
if(addr1>addr2)
{
AfxMessageBox("请重新设置扫描的IP地址,起始地址应小于终止地址!");
return;
}
//---------------------------
//--------显示起始IP和终止IP-----------------
CString strBeginAddress,strEndAddress;
strBeginAddress.Format("%d.%d.%d.%d",a[3],a[2],a[1],a[0]);
strEndAddress.Format("%d.%d.%d.%d",b[3],b[2],b[1],b[0]);
(m_pView->GetDlgItem(IDC_STATIC1))->SetWindowText("起始IP:"+strBeginAddress);
(m_pView->GetDlgItem(IDC_STATIC2))->SetWindowText("终止IP:"+strEndAddress);
(m_pView->GetDlgItem(IDC_BTN_START))->EnableWindow(true);
(m_pView->GetDlgItem(IDC_BTN_START))->SetWindowText("开始ping");
g_threadContral=false;//线程停止的标准,true为运行,false为停止;
//--------------------------------------------
//-------设置主窗口关于ping的参数-------------
m_pView->m_BBeginAddress=addr1;
m_pView->m_BEndAddress=addr2;
m_pView->m_timeout=m_timeout;
m_pView->m_pingNumber=m_pingNumber;
m_pView->m_run=1;
//--------------------------------------------
m_pView->SetUI();
CDialog::OnOK();
}
//DEL void CNewScanDlg::OnClose()
//DEL {
//DEL
//DEL CDialog::OnClose();
//DEL }