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 + -
显示快捷键?