📄 vpnserver.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 + -