configpage2.cpp
来自「MPEG4网络视频服务器客户端图象监控软件」· C++ 代码 · 共 261 行
CPP
261 行
// ConfigPage2.cpp : implementation file
//
#include "stdafx.h"
#include "DvsUser.h"
#include "ConfigPage2.h"
#include "DvsUserDlg.h"
#include "DlgUserAdd.h"
#include "DlgUserModify.h"
#include "DlgUserDel.h"
#include "DvsUserReg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
extern CDvsUserDlg* g_User;
/////////////////////////////////////////////////////////////////////////////
// CConfigPage2 property page
//-------------------------------------------------------------------------
//
//
//
//-------------------------------------------------------------------------
IMPLEMENT_DYNCREATE(CConfigPage2, CPropertyPage)
//-------------------------------------------------------------------------
//
//
//
//-------------------------------------------------------------------------
CConfigPage2::CConfigPage2() : CPropertyPage(CConfigPage2::IDD)
{
//{{AFX_DATA_INIT(CConfigPage2)
// NOTE: the ClassWizard will add member initialization here
//}}AFX_DATA_INIT
userIcon = AfxGetApp()->LoadIcon(IDI_ICON_USER);
}
//-------------------------------------------------------------------------
//
//
//
//-------------------------------------------------------------------------
CConfigPage2::~CConfigPage2()
{
}
//-------------------------------------------------------------------------
//
//
//
//-------------------------------------------------------------------------
void CConfigPage2::DoDataExchange(CDataExchange* pDX)
{
CPropertyPage::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CConfigPage2)
DDX_Control(pDX, IDC_CONFIG_LIST, m_user_list);
//}}AFX_DATA_MAP
}
//-------------------------------------------------------------------------
//
//
//
//-------------------------------------------------------------------------
BEGIN_MESSAGE_MAP(CConfigPage2, CPropertyPage)
//{{AFX_MSG_MAP(CConfigPage2)
ON_BN_CLICKED(IDC_CONFIG_ADD, OnConfigAdd)
ON_BN_CLICKED(IDC_CONFIG_MODIFY, OnConfigModify)
ON_BN_CLICKED(IDC_CONFIG_DEL, OnConfigDel)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CConfigPage2 message handlers
//-------------------------------------------------------------------------
//
//
//
//-------------------------------------------------------------------------
BOOL CConfigPage2::OnInitDialog()
{
CPropertyPage::OnInitDialog();
userImage.Create(16, 16, ILC_COLOR8, 1, 1);
userImage.Add(userIcon);
m_user_list.SetImageList(&userImage, LVSIL_SMALL);
m_user_list.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_user_list.InsertColumn(0, _TEXT("用户列表"), LVCFMT_LEFT, 200);
m_user_list.InsertColumn(1, _TEXT("用户权限"), LVCFMT_RIGHT, 100);
InitUserList();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
//-------------------------------------------------------------------------
//
//
//
//-------------------------------------------------------------------------
VOID CConfigPage2::InitUserList()
{
int nListIndex = 0;
m_user_list.DeleteAllItems();
for(int i=0; i<16; i++)
{
if(g_User->USER[i].bUserState == 1)
{
m_user_list.InsertItem(nListIndex, g_User->USER[i].szUserName);
switch (g_User->USER[i].dwUserPriority) {
case 1:
m_user_list.SetItemText(nListIndex, 1, _TEXT("USER"));
break;
case 2:
m_user_list.SetItemText(nListIndex, 1, _TEXT("OPERATOR"));
break;
case 3:
m_user_list.SetItemText(nListIndex, 1, _TEXT("ADMIN"));
break;
case 4:
m_user_list.SetItemText(nListIndex, 1, _TEXT("SUPER"));
}
nListIndex ++;
}
}
}
//-------------------------------------------------------------------------
//
//
//
//-------------------------------------------------------------------------
void CConfigPage2::OnConfigModify()
{
CDlgUserModify dlg;
int nSel;
CString strSel;
CString strTemp;
CDvsUserReg reg;
nSel = m_user_list.GetNextItem(-1, LVNI_SELECTED);
if(nSel != -1)
{
strSel = m_user_list.GetItemText(nSel, 0);
for(int i=0; i<16; i++)
{
strTemp = g_User->USER[i].szUserName;
if(strSel == strTemp)
{
dlg.m_strOldPsw = g_User->USER[i].szPassword;
if(IDOK == dlg.DoModal())
{
sprintf(g_User->USER[i].szPassword, "%s", dlg.m_strNewPsw);
reg.SetUserInfo(g_User->USER);
}
return;
}
}
}
}
//-------------------------------------------------------------------------
//
//
//
//-------------------------------------------------------------------------
void CConfigPage2::OnConfigAdd()
{
CDlgUserAdd dlg;
CDvsUserReg reg;
CString strTemp;
for(int i=0; i<16; i++)
{
if(g_User->USER[i].bUserState == 0)
{
if(IDOK == dlg.DoModal())
{
for(int j=0; j<16; j++)
{
if(g_User->USER[j].bUserState)
{
strTemp = g_User->USER[j].szUserName;
if(strTemp == dlg.m_strUserName)
{
MessageBox(_TEXT("该用户已经存在"), _TEXT("提示"), MB_ICONINFORMATION);
return;
}
}
}
g_User->USER[i].bUserState = 1;
g_User->USER[i].dwUserPriority = dlg.m_dwPriority;
sprintf(g_User->USER[i].szUserName, "%s", dlg.m_strUserName);
sprintf(g_User->USER[i].szPassword, "%s", dlg.m_strPassword);
reg.SetUserInfo(g_User->USER);
InitUserList();
}
return;
}
}
MessageBox(_TEXT("系统用户列表已满,无法增加新的用户!"), _TEXT("提示"), MB_ICONINFORMATION);
}
//-------------------------------------------------------------------------
//
//
//
//-------------------------------------------------------------------------
void CConfigPage2::OnConfigDel()
{
int nSel;
CString strSel;
CString strTemp;
CDlgUserDel dlg;
CDvsUserReg reg;
nSel = m_user_list.GetNextItem(-1, LVNI_SELECTED);
if(nSel != -1)
{
strSel = m_user_list.GetItemText(nSel, 0);
for(int i=0; i<16; i++)
{
strTemp = g_User->USER[i].szUserName;
if(strSel == strTemp)
{
if(g_User->USER[i].dwUserPriority == 4)
{
MessageBox(_TEXT("不允许删除权限为Super的用户!"),
_TEXT("提示"), MB_ICONINFORMATION);
return;
}
if(g_User->USER[i].dwUserPriority == 3)
{
dlg.m_strPassword = g_User->USER[i].szPassword;
if(IDOK != dlg.DoModal())
{
return;
}
}
g_User->USER[i].bUserState = 0;
reg.SetUserInfo(g_User->USER);
InitUserList();
return;
}
}
}
}
//-------------------------------------------------------------------------
//
//
//
//-------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?