⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 editdlg.cpp

📁 最近在调试PPC上的VPN程序
💻 CPP
字号:
// EditDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Route.h"
#include "EditDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CEditDlg dialog


CEditDlg::CEditDlg(CRouteDlg* pParent /*=NULL*/, MIB_IPFORWARDROW &entry)
	: CDialog(CEditDlg::IDD, pParent), m_pParent(pParent), m_sEntry(entry)
{
	//{{AFX_DATA_INIT(CEditDlg)
	m_szDest = _T("");
	m_szDestMask = _T("");
	m_szGateway = _T("");
	m_szMetric = _T("");
	//}}AFX_DATA_INIT

	m_bFullScreen = FALSE;
}


void CEditDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CEditDlg)
	DDX_Control(pDX, IDC_CB_ADAPTER, m_cbAdapter);
	DDX_Text(pDX, IDC_ED_DEST, m_szDest);
	DDX_Text(pDX, IDC_ED_DESTMASK, m_szDestMask);
	DDX_Text(pDX, IDC_ED_GATEWAY, m_szGateway);
	DDX_Text(pDX, IDC_ED_METRIC, m_szMetric);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CEditDlg, CDialog)
	//{{AFX_MSG_MAP(CEditDlg)
	ON_WM_ACTIVATE()
	ON_WM_SETTINGCHANGE()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CEditDlg message handlers

BOOL CEditDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	int nIndex;
	const IP_ADAPTER_INFO *adapter;
	adapter = m_pParent->m_sRouteHelper.m_pAdpTab;
	for (; adapter != NULL; adapter = adapter->Next)
	{
		USES_CONVERSION;
		nIndex = m_cbAdapter.AddString(A2T(adapter->AdapterName));
		m_cbAdapter.SetItemData(nIndex, adapter->Index);
	}

	in_addr addr;
	if(m_sEntry.dwForwardDest != 0)
	{
		USES_CONVERSION;
		addr.S_un.S_addr = m_sEntry.dwForwardDest;
		m_szDest = A2T(inet_ntoa(addr));
	}

	if(m_sEntry.dwForwardMask != 0)
	{
		USES_CONVERSION;
		addr.S_un.S_addr = m_sEntry.dwForwardMask;
		m_szDestMask = A2T(inet_ntoa(addr));
	}

	if(m_sEntry.dwForwardNextHop != 0)
	{
		USES_CONVERSION;
		addr.S_un.S_addr = m_sEntry.dwForwardNextHop;
		m_szGateway = A2T(inet_ntoa(addr));
	}

	if(m_sEntry.dwForwardMetric1 != 0)
	{
		m_szMetric.Format(_T("%d"), m_sEntry.dwForwardMetric1);
	}

	if(m_sEntry.dwForwardIfIndex != 0)
	{
		int nCount;
		nCount = m_cbAdapter.GetCount();
		for(int i = 0; i < nCount; i++)
		{
			if(m_cbAdapter.GetItemData(i) == m_sEntry.dwForwardIfIndex)
			{
				m_cbAdapter.SetCurSel(i);
				break;
			}
		}
	}

	UpdateData(FALSE);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CEditDlg::OnOK() 
{
	UpdateData();

	if(m_szDest == "")
	{
		MessageBox(_T("目标地址不能为空!"), _T("提示"), MB_OK | MB_ICONINFORMATION);		
		return;
	}

	if(m_szDestMask == "")
	{
		MessageBox(_T("目标掩码不能为空!"), _T("提示"), MB_OK | MB_ICONINFORMATION);
		return;
	}

	if(m_szGateway == "")
	{
		MessageBox(_T("网关不能为空!"), _T("提示"), MB_OK | MB_ICONINFORMATION);
		return;
	}

	int nIndex = m_cbAdapter.GetCurSel();
	if(nIndex < 0)
	{
		MessageBox(_T("必须制定接口!"), _T("提示"), MB_OK | MB_ICONINFORMATION);
		return;
	}

	USES_CONVERSION;

	m_sEntry.dwForwardDest = inet_addr(T2A(m_szDest));
	m_sEntry.dwForwardMask = inet_addr(T2A(m_szDestMask));
	m_sEntry.dwForwardNextHop = inet_addr(T2A(m_szGateway));
	m_sEntry.dwForwardMetric1 = atoi(T2A(m_szMetric));

	m_sEntry.dwForwardIfIndex = m_cbAdapter.GetItemData(nIndex);

	CDialog::OnOK();
}

void CEditDlg::OnActivate(UINT nState, CWnd* pWndOther, BOOL bMinimized) 
{
	CWnd::OnActivate(nState, pWndOther, bMinimized);
}

void CEditDlg::OnSettingChange(UINT uFlags, LPCTSTR lpszSection) 
{
	CWnd::OnSettingChange(uFlags, lpszSection);	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -