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

📄 vpnserver.cpp

📁 vpn服务器的源代码
💻 CPP
字号:
// VpnServer.cpp : implementation file
//

#include "stdafx.h"
#include "ddDlqServer.h"
#include "VpnServer.h"

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

/////////////////////////////////////////////////////////////////////////////
// CVpnServer dialog
extern CDdDlqServerApp theApp;

#include "VpnServerData.h"

CVpnServer::CVpnServer(CWnd* pParent /*=NULL*/)
	: CDialog(CVpnServer::IDD, pParent)
{
	//{{AFX_DATA_INIT(CVpnServer)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
}


void CVpnServer::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CVpnServer)
	DDX_Control(pDX, IDC_LIST_SERVER, m_ctrlListVpn);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CVpnServer, CDialog)
	//{{AFX_MSG_MAP(CVpnServer)
	ON_BN_CLICKED(BTN_DELETE_SERVER, OnDeleteServer)
	ON_BN_CLICKED(BTN_EDIT_SERVER, OnEditServer)
	ON_BN_CLICKED(BTN_EXIT_SERVER, OnExitServer)
	ON_BN_CLICKED(BTN_INSERT_SERVER, OnInsertServer)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CVpnServer message handlers

void CVpnServer::OnDeleteServer() 
{
	// 删除一条记录
	CString str;
	
	int index = m_ctrlListVpn.GetNextItem(-1, LVNI_SELECTED);
	if(index == -1)
	{
		MessageBox("请选中其中一条记录进行删除!");
		return;
	}
	str = m_ctrlListVpn.GetItemText(index, 0);
	if(!theApp.glFindPositionFromServerTable(str))
	{
		MessageBox("当前记录不存在!");
		return;
	}
	str = "您确认要删除这条记录!\n\n";
	str += "\"" + m_ctrlListVpn.GetItemText(index, 0) + "\"";
	if(MessageBox(str, "删除吗?", MB_YESNO) == IDYES)
	{
		theApp.adoRstServer.Delete();
		m_ctrlListVpn.DeleteAllItems(LVNI_SELECTED);
		theApp.glGetAllServer();
	}
}

void CVpnServer::OnEditServer() 
{
	// 编辑一条记录
	CVpnServerData dlg;
	CString str;
	
	int index = m_ctrlListVpn.GetNextItem(-1, LVNI_SELECTED);
	if(index == -1)
	{
		MessageBox("请选中其中一条记录进行编辑!");
		return;
	}
	str = m_ctrlListVpn.GetItemText(index, 0);
	if(!theApp.glFindPositionFromServerTable(str))
	{
		MessageBox("当前记录不存在!");
		return;
	}
	dlg.bEdit = true;
	svInfo.siServerName = str;
	str = m_ctrlListVpn.GetItemText(index, 1);
	svInfo.siNumOnline = atoi(str);
	str = m_ctrlListVpn.GetItemText(index, 2);
	svInfo.siNumTotal = atoi(str);
	str = m_ctrlListVpn.GetItemText(index, 3);
	svInfo.siServerStatus = str;
	str = m_ctrlListVpn.GetItemText(index, 4);
	svInfo.siServerIP = str;
	str = m_ctrlListVpn.GetItemText(index, 5);
	svInfo.siUseName = str;
	str = m_ctrlListVpn.GetItemText(index, 6);
	svInfo.siPassword = str;

	dlg.svInfoData = svInfo;
	if(dlg.DoModal() == IDOK)
	{
		svInfo = dlg.svInfoData;

		theApp.adoRstServer.Edit();
		theApp.adoRstServer.SetFieldValue("servName", svInfo.siServerName);
		theApp.adoRstServer.SetFieldValue("servZaiXianRenShu", svInfo.siNumOnline);
		theApp.adoRstServer.SetFieldValue("servZongRenShu", svInfo.siNumTotal);
		theApp.adoRstServer.SetFieldValue("servStatus", svInfo.siServerStatus);
		theApp.adoRstServer.SetFieldValue("vpnServerIP", svInfo.siServerIP);
		theApp.adoRstServer.SetFieldValue("vpnUserName", svInfo.siUseName);
		theApp.adoRstServer.SetFieldValue("vpnUserPwd", svInfo.siPassword);
		if(!theApp.adoRstServer.Update())
			return;
		m_ctrlListVpn.SetItemText(index, 0, svInfo.siServerName);
		m_ctrlListVpn.SetItemText(index, 1, svInfo.siNumOnline);
		m_ctrlListVpn.SetItemText(index, 2, svInfo.siNumTotal);
		m_ctrlListVpn.SetItemText(index, 3, svInfo.siServerStatus);
		m_ctrlListVpn.SetItemText(index, 4, svInfo.siServerIP);
		m_ctrlListVpn.SetItemText(index, 5, svInfo.siUseName);
		m_ctrlListVpn.SetItemText(index, 6, svInfo.siPassword);
		m_ctrlListVpn.SetFocus();
		theApp.glGetAllServer();
	}
}

void CVpnServer::OnExitServer() 
{
	CDialog::OnOK();
}

void CVpnServer::OnInsertServer() 
{
	// 添加一条记录
	CVpnServerData dlg;
	CString str;
	int itemCount;
	
	int index = m_ctrlListVpn.GetLastItem(RC_ITEM_ALL, -1);
	dlg.bEdit = false;
	svInfo.siServerName = "自定义服务器名称";
	svInfo.siNumOnline = 0;
	svInfo.siNumTotal = 100;
	svInfo.siServerStatus = "正常";
	svInfo.siServerIP = "1.2.3.4";
	svInfo.siUseName = "vpn";
	svInfo.siPassword = "1";
	
	dlg.svInfoData = svInfo;
	if(dlg.DoModal() == IDOK)
	{
		svInfo = dlg.svInfoData;
		
		theApp.adoRstServer.AddNew();
		theApp.adoRstServer.SetFieldValue("servName", svInfo.siServerName);
		theApp.adoRstServer.SetFieldValue("servZaiXianRenShu", svInfo.siNumOnline);
		theApp.adoRstServer.SetFieldValue("servZongRenShu", svInfo.siNumTotal);
		theApp.adoRstServer.SetFieldValue("servStatus", svInfo.siServerStatus);
		theApp.adoRstServer.SetFieldValue("vpnServerIP", svInfo.siServerIP);
		theApp.adoRstServer.SetFieldValue("vpnUserName", svInfo.siUseName);
		theApp.adoRstServer.SetFieldValue("vpnUserPwd", svInfo.siPassword);
		if(!theApp.adoRstServer.Update())
			return;
		itemCount = m_ctrlListVpn.GetItemCount(RC_ITEM_ALL);
		const int IDX = m_ctrlListVpn.InsertItem(itemCount++, _T(""));
		m_ctrlListVpn.SetItemText(IDX, 0, svInfo.siServerName);
		m_ctrlListVpn.SetItemText(IDX, 1, svInfo.siNumOnline);
		m_ctrlListVpn.SetItemText(IDX, 2, svInfo.siNumTotal);
		m_ctrlListVpn.SetItemText(IDX, 3, svInfo.siServerStatus);
		m_ctrlListVpn.SetItemText(IDX, 4, svInfo.siServerIP);
		m_ctrlListVpn.SetItemText(IDX, 5, svInfo.siUseName);
		m_ctrlListVpn.SetItemText(IDX, 6, svInfo.siPassword);
		m_ctrlListVpn.SetFocus();	
		theApp.glGetAllServer();
	}
	ddSetRowsColor(0, RGB(233, 222, 0));
}

BOOL CVpnServer::DestroyWindow() 
{
	// TODO: Add your specialized code here and/or call the base class
	
	return CDialog::DestroyWindow();
}

BOOL CVpnServer::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	m_ctrlListVpn.SetColumnHeader(_T("vpn服务器名字, 180; 在线, 50; 总数, 50; 状态, 50; VPN IP, 150; VPN 帐号, 80; VPN 密码, 80, 2"));
	m_ctrlListVpn.SetGridLines(TRUE); // 显示网格
	m_ctrlListVpn.SetEditable(FALSE); // 不允许编辑各个项目
	m_ctrlListVpn.SortItems(0, FALSE); // 不排序
	
	int irenshu, irows = 1;
	CString str;

	theApp.adoRstServer.MoveLast();
	while(!theApp.adoRstServer.IsBOF())
	{	
		const int IDX = m_ctrlListVpn.InsertItem(0, _T(""));
		theApp.adoRstServer.GetFieldValue("servName", str);
		m_ctrlListVpn.SetItemText(IDX, 0, str);
		theApp.adoRstServer.GetFieldValue("servZaiXianRenShu", irenshu);
		m_ctrlListVpn.SetItemText(IDX, 1, irenshu);
		theApp.adoRstServer.GetFieldValue("servZongRenShu", irenshu);
		m_ctrlListVpn.SetItemText(IDX, 2, irenshu);
		theApp.adoRstServer.GetFieldValue("servStatus", str);
		m_ctrlListVpn.SetItemText(IDX, 3, str);
		theApp.adoRstServer.GetFieldValue("vpnServerIP", str);
		m_ctrlListVpn.SetItemText(IDX, 4, str);
		theApp.adoRstServer.GetFieldValue("vpnUserName", str);
		m_ctrlListVpn.SetItemText(IDX, 5, str);
		theApp.adoRstServer.GetFieldValue("vpnUserPwd", str);
		m_ctrlListVpn.SetItemText(IDX, 6, str);
		theApp.adoRstServer.MovePrevious();
	}
	ddSetRowsColor(0, RGB(233, 222, 0));
	/*irows = m_ctrlListVpn.GetItemCount();
	for(int n = 0; n < irows; n++)
	{
		if(((n + 1) % 2) == 0)
			m_ctrlListVpn.SetItemBkColor(n, -1, RGB(233, 222, 0));
	}*/
	
	return TRUE;
}

void CVpnServer::OnOK() 
{
	//CDialog::OnOK();
}

void CVpnServer::OnCancel() 
{
	//CDialog::OnCancel();
}

int CVpnServer::ddSetRowsColor(COLORREF r1color, COLORREF r2color)
{
	int irows = -1;
	irows = m_ctrlListVpn.GetItemCount();
	if(irows <= 0)
		return 0;
	if((r1color <= 0) && (r2color <= 0))
		return -1;
	for(int n = 0; n < irows; n++)
	{
		if(((n + 1) % 2) == 0)
		{
			if(r2color > 0)
				m_ctrlListVpn.SetItemBkColor(n, -1, r2color);
		}
		else
		{
			if(r1color > 0)
				m_ctrlListVpn.SetItemBkColor(n, -1, r1color);
		}
	}
	return 1;
}


⌨️ 快捷键说明

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