registernewuserdlg.cpp

来自「VC++和ACCESS使用ADO连接」· C++ 代码 · 共 302 行

CPP
302
字号
// RegisterNewUserDlg.cpp : implementation file
//

#include "stdafx.h"
#include "ministryperson.h"
#include "RegisterNewUserDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// RegisterNewUserDlg dialog


RegisterNewUserDlg::RegisterNewUserDlg(CWnd* pParent /*=NULL*/)
	: CDialog(RegisterNewUserDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(RegisterNewUserDlg)
	m_strLoginName = _T("");
	m_strLoginPassword = _T("");
	m_strLoginPassword2 = _T("");
	//}}AFX_DATA_INIT
}


void RegisterNewUserDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(RegisterNewUserDlg)
	DDX_Control(pDX, IDCANCEL, m_Btn_Cancel);
	DDX_Text(pDX, IDC_EDIT_RNU_NAME, m_strLoginName);
	DDX_Text(pDX, IDC_EDIT_RNU_PASSWORD, m_strLoginPassword);
	DDX_Text(pDX, IDC_EDIT_RNU_PASSWORD2, m_strLoginPassword2);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(RegisterNewUserDlg, CDialog)
	//{{AFX_MSG_MAP(RegisterNewUserDlg)
	ON_EN_KILLFOCUS(IDC_EDIT_RNU_NAME, OnKillfocusEditRnuName)
	ON_EN_SETFOCUS(IDC_EDIT_RNU_NAME, OnSetfocusEditRnuName)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// RegisterNewUserDlg message handlers

BOOL RegisterNewUserDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	if(m_IsModifyPassword)
	{
		CADOOperation ADOdbo;
		ADOdbo.OpenTable("Employee_Login_Table");			  				  
		if(ADOdbo.IsLastRow())
		{
			MessageBox("系统当前没有注册用户!\t", "错误", MB_OK | MB_ICONSTOP);
			ADOdbo.CloseTable();
			return FALSE;
		}

		InitCodeDlg();
		SetDlgItemText(IDC_EDIT_RNU_NAME, m_RegUserName);			
		return TRUE;
	}

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

/*********************************************************************
函数说明:	 注册和修改
函数参数:	  
*********************************************************************/
void RegisterNewUserDlg::OnOK() 
{
	if(!m_IsModifyPassword)
	{
		CString RegNewName;
		GetDlgItemText(IDC_EDIT_RNU_NAME, RegNewName);
		if(SaveUserInfo(RegNewName))
		{
			MessageBox("注册成功!\t", "提示", MB_OK | MB_ICONEXCLAMATION);
			CDialog::OnOK();
		}
		else
		{
			return;
		}
	}
	else
	{
		CString StrRegName;
		GetDlgItemText(IDC_EDIT_RNU_NAME, StrRegName);
		if(ModidyPassword(StrRegName))
		{
			MessageBox("密码修改成功!\t", "提示", MB_OK | MB_ICONEXCLAMATION);
			CDialog::OnOK();			
		}
	}
}

/*********************************************************************
函数说明:	 用户名得到焦点
函数参数:	  
*********************************************************************/
void RegisterNewUserDlg::OnSetfocusEditRnuName() 
{
	SetDlgItemText(IDC_BTN_RNU_CHECKNAME, "检查用户名");	
}

/*********************************************************************
函数说明:	 用户名失去焦点
函数参数:	  
*********************************************************************/
void RegisterNewUserDlg::OnKillfocusEditRnuName() 
{
	CString StrName;
	GetDlgItemText(IDC_EDIT_RNU_NAME, StrName);
	if(!CheckRegName(StrName))
	{
		SetDlgItemText(IDC_BTN_RNU_CHECKNAME, "×用户名非法");
		return;
	}
	else
	{
		SetDlgItemText(IDC_BTN_RNU_CHECKNAME, "√用户名合法");
	}	
}

/*********************************************************************
函数说明:	 
函数参数:	  
*********************************************************************/
BOOL RegisterNewUserDlg::CheckRegName(CString &StrRegName)
{
	UpdateData(TRUE);

	CString SQL;
	DWORD dwCount = 0;
	CADOOperation ADOdbo;
	
	SQL.Format("select count(*) from Employee_Login_Table where Login_ID = '%s'", StrRegName);
	ADOdbo.OpenRecordset(SQL);
	ADOdbo.GetItemContentDw(0, CADOOperation::ADO_TYPE_INT, &dwCount);
	ADOdbo.CloseRecorset();
	
	if (dwCount <= 0)
	{
		StrRegName.TrimLeft();
		if (StrRegName.IsEmpty())
		{
			if (m_strLoginPassword.IsEmpty() && m_strLoginPassword2.IsEmpty())
			{
				return FALSE;
			}
			MessageBox("用户名不能为空!\t", "错误", MB_OK | MB_ICONSTOP);
			return FALSE;
		}
		return TRUE;
	}	
	return FALSE;
}
/*********************************************************************
函数说明:	 修改密码界面
函数参数:	  
*********************************************************************/
BOOL RegisterNewUserDlg::InitCodeDlg()
{
	SetWindowText("修改用户密码");
	GetDlgItem(IDC_EDIT_RNU_NAME)->EnableWindow(FALSE);
	GetDlgItem(IDC_BTN_RNU_CHECKNAME)->ShowWindow(SW_HIDE);
	GetDlgItem(IDOK)->SetWindowText("修 改");
	
	return TRUE;
}

/*********************************************************************
函数说明:	 修改密码
函数参数:	  
*********************************************************************/
BOOL RegisterNewUserDlg::ModidyPassword(CString &StrRegName)
{
	CADOOperation ADOdbo;
	CString SQL;
	CString Password;
	CString Password2;
	GetDlgItemText(IDC_EDIT_RNU_PASSWORD, Password);
	GetDlgItemText(IDC_EDIT_RNU_PASSWORD2, Password2);

	if(Password.IsEmpty())
	{
		MessageBox("“密码”不能为空!\t", "提示", MB_OK | MB_ICONWARNING);
		GetDlgItem(IDC_EDIT_RNU_PASSWORD)->SetFocus();
		return FALSE;
	}
	if(Password2.IsEmpty())
	{
		MessageBox("“重复密码”不能为空!\t", "提示", MB_OK | MB_ICONWARNING);
		GetDlgItem(IDC_EDIT_RNU_PASSWORD2)->SetFocus();
		return FALSE;
	}
	if(0 != Password2.Compare(Password.GetBuffer(0)))
	{
		MessageBox("密码不一至!\t", "提示", MB_OK | MB_ICONWARNING);
		SetDlgItemText(IDC_EDIT_RNU_PASSWORD, "");
		SetDlgItemText(IDC_EDIT_RNU_PASSWORD2, "");
		GetDlgItem(IDC_EDIT_RNU_PASSWORD)->SetFocus();
		return FALSE;
	}

	SQL.Format("update Employee_Login_Table \
				set	  Login_Password = '%s' \
				where Login_ID = '%s'", Password, StrRegName);
	ADOdbo.OpenRecordset(SQL);
	ADOdbo.CloseRecorset();
	
	return TRUE;
}

/*********************************************************************
函数说明:	 
函数参数:	  
*********************************************************************/
BOOL RegisterNewUserDlg::SaveUserInfo(CString &StrName)
{
	CString StrCode;
	CString StrCode2;
	CADOOperation ADOdbo;
	
	GetDlgItemText(IDC_EDIT_RNU_PASSWORD, StrCode);
	GetDlgItemText(IDC_EDIT_RNU_PASSWORD2, StrCode2);
	
	CString strBtnCap;
	GetDlgItemText(IDC_BTN_RNU_CHECKNAME, strBtnCap);
	if (strBtnCap != "√用户名合法")
	{
		MessageBox("请填写合法的“用户名”\t", "提示", MB_OK | MB_ICONWARNING);
		return FALSE;
	}

	if(StrName.IsEmpty())
	{
		MessageBox("“用户名”不能为空!\t", "提示", MB_OK | MB_ICONWARNING);
		GetDlgItem(IDC_EDIT_RNU_NAME)->SetFocus();
		return FALSE;
	}
	if(StrCode.IsEmpty())
	{
		MessageBox("“密码”不能为空!\t", "提示", MB_OK | MB_ICONWARNING);
		GetDlgItem(IDC_EDIT_RNU_PASSWORD)->SetFocus();
		return FALSE;
	}
	if(StrCode2.IsEmpty())
	{
		MessageBox("“重复密码”不能为空!\t", "提示", MB_OK | MB_ICONWARNING);
		GetDlgItem(IDC_EDIT_RNU_PASSWORD2)->SetFocus();
		return FALSE;
	}
	if(0 != StrCode2.Compare(StrCode.GetBuffer(0)))
	{
		MessageBox("密码不一至!\t", "提示", MB_OK | MB_ICONWARNING);
		SetDlgItemText(IDC_EDIT_RNU_PASSWORD, "");
		SetDlgItemText(IDC_EDIT_RNU_PASSWORD2, "");
		GetDlgItem(IDC_EDIT_RNU_PASSWORD)->SetFocus();
		return FALSE;
	}
	ADOdbo.OpenTable("Employee_Login_Table");
	ADOdbo.AddNew();
	ADOdbo.SetItemContent("Login_ID", CADOOperation::ADO_TYPE_STRING, &StrName);
	ADOdbo.SetItemContent("Login_Password", CADOOperation::ADO_TYPE_STRING, &StrCode);
	ADOdbo.UpdateData();
	ADOdbo.CloseTable();
	return TRUE;
}

/*********************************************************************
函数说明:	 在修改密码的时候,先调用此函数来设置其为修改界面的状态
函数参数:	  
*********************************************************************/
void RegisterNewUserDlg::SetModifyPasswordDlg(BOOL bIsCode)
{
	
	m_IsModifyPassword = bIsCode;
}

/*********************************************************************
函数说明:	 
函数参数:	  
*********************************************************************/
void RegisterNewUserDlg::SetUserName(CString &StrName)
{
	m_RegUserName = StrName;
}


⌨️ 快捷键说明

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