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 }