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