⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usermanagerdlg.cpp

📁 一个完整的MFC系统
💻 CPP
字号:
// UsermanagerDlg.cpp : implementation file
//

#include "stdafx.h"
#include "Library.h"
#include "UsermanagerDlg.h"

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

/////////////////////////////////////////////////////////////////////////////
// CUsermanagerDlg dialog


CUsermanagerDlg::CUsermanagerDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CUsermanagerDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CUsermanagerDlg)
	m_strpwd = _T("");
	m_struserID = _T("");
	m_strpwdOK = _T("");
	m_strnumberID = _T("");
	m_strusername = _T("");
	//}}AFX_DATA_INIT
}


void CUsermanagerDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CUsermanagerDlg)
	DDX_Control(pDX, IDC_EDIT_USER_NAME, m_ctrusername);
	DDX_Control(pDX, IDC_EDIT_NUMBER_ID, m_ctrnumberID);
	DDX_Control(pDX, IDC_EDIT_PWD, m_ctrpwd);
	DDX_Control(pDX, IDC_EDIT_USERID, m_ctruser);
	DDX_Control(pDX, IDC_LIST_USER, m_ctrlist);
	DDX_Text(pDX, IDC_EDIT_PWD, m_strpwd);
	DDX_Text(pDX, IDC_EDIT_USERID, m_struserID);
	DDX_Text(pDX, IDC_EDIT_PWDOK, m_strpwdOK);
	DDX_Text(pDX, IDC_EDIT_NUMBER_ID, m_strnumberID);
	DDX_Text(pDX, IDC_EDIT_USER_NAME, m_strusername);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CUsermanagerDlg, CDialog)
	//{{AFX_MSG_MAP(CUsermanagerDlg)
	ON_BN_CLICKED(IDC_BUTTON_ADD, OnButtonAdd)
	ON_BN_CLICKED(IDC_BUTTON_DELETE, OnButtonDelete)
	ON_NOTIFY(NM_CLICK, IDC_LIST_USER, OnClickListUser)
	ON_BN_CLICKED(IDC_BUTTON_CANCEL, OnButtonCancel)
	ON_BN_CLICKED(IDC_BUTTON_MODIFY, OnButtonModify)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CUsermanagerDlg message handlers

void CUsermanagerDlg::OnButtonAdd() 
{
	m_struserID="";
	m_strpwd="";
	m_strpwdOK="";
    m_ctruser.SetFocus();
    UpdateData(FALSE);
	
}

void CUsermanagerDlg::RefreshData()
{
	m_ctrlist.SetFocus();
    //清除用户列表
	m_ctrlist.DeleteAllItems();
	m_ctrlist.SetRedraw(FALSE);
	CString strSQL;
	UpdateData(TRUE);
	strSQL.Format("select * from admininfo");
	if(!m_adminset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("打开数据库错误!","数据库错误",MB_OK);
		return ;
	}
	//添加用户ID到列表中
	int i=0;
	while(!m_adminset.IsEOF())
	{
		m_ctrlist.InsertItem(i,m_adminset.m_User_ID);
		m_adminset.MoveNext();
		i++;
	}
	m_adminset.Close();
	m_ctrlist.SetRedraw(TRUE);
}



void CUsermanagerDlg::OnButtonDelete() 
{
	int i=m_ctrlist.GetSelectionMark();
	//判断用户是否选择了记录
	if(i<0)
	{
		AfxMessageBox("请在列表中选择一个记录");
		return ;
	}
	CString strSQL;
	strSQL.Format("select * from admininfo where User_ID='%s'",m_ctrlist.GetItemText(i,0));
	if(!m_adminset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		AfxMessageBox("打开数据库错误");
		return ;
	}
	m_adminset.Delete();
	m_adminset.Close();
	m_ctrlist.DeleteItem(i);
	//更新界面显示

	m_struserID=_T("");
	m_strusername=_T("");
	UINT nsex=GetCheckedRadioButton(IDC_RADIO_NAN,IDC_RADIO_NV);
	((CButton*)GetDlgItem(nsex))->SetCheck(BST_UNCHECKED);
	m_strnumberID=_T("");
	m_strpwd=_T("");
	UpdateData(FALSE);
	
}


void CUsermanagerDlg::OnOK() 
{
    	
	//CDialog::OnOK();
	UpdateData();
	//对用户必填信息是否输入进行检查
	if(m_struserID.IsEmpty())
	{
		MessageBox("请输入用户ID!");
		m_ctruser.SetFocus();
		return ;
	}
	if(m_strpwd.IsEmpty())
	{
		MessageBox("请输入密码!");
		m_ctrpwd.SetFocus();
		return;
	}
	if(m_strpwd!=m_strpwdOK)
	{
		MessageBox("两次输入的密码不一致,请重新输入密码");
		m_ctrpwd.SetFocus();
		m_strpwd="";
		m_strpwdOK="";
		UpdateData(FALSE);
		return ;
	}
	if(m_strusername.IsEmpty())
	{
		MessageBox("请输入用户名字!");
		m_ctrusername.SetFocus();
		return ;
	}
	if(GetCheckedRadioButton(IDC_RADIO_NAN,IDC_RADIO_NV)==0)
	{
		MessageBox("请选择性别!");
		return ;
	}
	if(m_strnumberID.IsEmpty())
	{
		MessageBox("请输入身份证号!");
		m_ctrnumberID.SetFocus();
		return ;
	}
	CString strSQL;
	strSQL.Format("select * from admininfo where User_ID='%s'",m_struserID);
	if(!m_adminset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("数据库打开错误","数据库错误",MB_OK);
		return ;
	}
	//判断用户ID是否存在
	if(m_adminset.GetRecordCount()!=0)
	{
		m_adminset.Close();
		MessageBox("该用户ID存在!");
		return ;
	}
	//获取性别字符串
	UINT nsex=GetCheckedRadioButton(IDC_RADIO_NAN,IDC_RADIO_NV);
	CString sex;
	switch(nsex){
	case IDC_RADIO_NAN:
		sex="男";
		break;
	case IDC_RADIO_NV:
		sex="女";
		break;
	}

	m_adminset.AddNew();
	m_adminset.m_User_ID=m_struserID;
	m_adminset.m_User_Name=m_strusername;
	m_adminset.m_Password=m_strpwd;
    m_adminset.m_User_Sex=sex;
	m_adminset.m_User_Number=m_strnumberID;
	m_adminset.Update();
	m_adminset.Close();
	RefreshData();
	MessageBox("添加成功!","请记住用户ID和密码!");
    
}

void CUsermanagerDlg::OnClickListUser(NMHDR* pNMHDR, LRESULT* pResult) 
{
    CString strSQL;
	UpdateData(TRUE);
	//从数据库中选择所选用户ID的资料
    int i=m_ctrlist.GetSelectionMark();
	m_struserID=m_ctrlist.GetItemText(i,0);
	strSQL.Format("select * from admininfo where User_ID='%s'",m_struserID);
	if(!m_adminset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("打开数据库失败","数据库错误",MB_OK);
		return ;
	}
	m_strpwd=m_adminset.m_Password;
	m_strpwdOK=m_strpwd;
	m_strusername=m_adminset.m_User_Name;
	m_strnumberID=m_adminset.m_User_Number;
	CString sex;
	sex=m_adminset.m_User_Sex;
	if(sex=="男")
	{
	    ((CButton*)GetDlgItem(IDC_RADIO_NV))->SetCheck(BST_UNCHECKED);
		((CButton*)GetDlgItem(IDC_RADIO_NAN))->SetCheck(BST_CHECKED);
	}
	else
	{
		((CButton*)GetDlgItem(IDC_RADIO_NAN))->SetCheck(BST_UNCHECKED);
		((CButton*)GetDlgItem(IDC_RADIO_NV))->SetCheck(BST_CHECKED);
	}
	m_adminset.Close();
	UpdateData(FALSE);

	*pResult = 0;
}

BOOL CUsermanagerDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
    //创建用户列表
	m_ctrlist.InsertColumn(0,"用户ID");
	m_ctrlist.SetExtendedStyle(LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES);
	m_ctrlist.SetColumnWidth(0,120);
	RefreshData();

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

void CUsermanagerDlg::OnButtonCancel() 
{
	m_struserID=_T("");
	m_strusername=_T("");
	((CButton*)GetDlgItem(IDC_RADIO_NAN))->SetCheck(BST_UNCHECKED);
	((CButton*)GetDlgItem(IDC_RADIO_NV))->SetCheck(BST_UNCHECKED);
	m_strnumberID=_T("");
	m_strpwd=_T("");
	m_strpwdOK=_T("");
	m_ctruser.SetFocus();
	UpdateData(FALSE);	
	
}

void CUsermanagerDlg::OnButtonModify() 
{
    //UpdateData();
	//对用户必填信息是否输入进行检查
	int i=m_ctrlist.GetSelectionMark();
	if(i<0)
	{
		AfxMessageBox("请在列表中选择一个用户!");
		return ;
	}
	
	m_struserID=m_ctrlist.GetItemText(i,0);
	CString strSQL;
	strSQL.Format("select * from admininfo where User_ID='%s'",m_struserID);
	if(!m_adminset.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL))
	{
		MessageBox("数据库打开错误!","数据库错误",MB_OK);
		return ;
	}
    //判断用户ID是否存在
	if(m_adminset.GetRecordCount()==0)
	{
		m_adminset.Close();
		MessageBox("该用户ID不存在!");
		return ;
	}
	if(m_struserID.IsEmpty())
	{
		MessageBox("请输入用户ID!");
		m_ctruser.SetFocus();
		return ;
	}
	if(m_strpwd.IsEmpty())
	{
		MessageBox("请输入密码!");
		m_ctrpwd.SetFocus();
		return;
	}
	if(m_strpwd!=m_strpwdOK)
	{
		MessageBox("两次输入的密码不一致,请重新输入密码");
		m_ctrpwd.SetFocus();
		m_strpwd="";
		m_strpwdOK="";
		UpdateData(FALSE);
		return ;
	}
	if(m_strusername.IsEmpty())
	{
		MessageBox("请输入用户名字!");
		m_ctrusername.SetFocus();
		return ;
	}
	if(GetCheckedRadioButton(IDC_RADIO_NAN,IDC_RADIO_NV)==0)
	{
		MessageBox("请选择性别!");
		return ;
	}
	if(m_strnumberID.IsEmpty())
	{
		MessageBox("请输入身份证号!");
		m_ctrnumberID.SetFocus();
		return ;
	}

	//获取性别字符串
	UINT nsex=GetCheckedRadioButton(IDC_RADIO_NAN,IDC_RADIO_NV);
	CString sex;
	switch(nsex){
	case IDC_RADIO_NAN:
		sex="男";
		break;
	case IDC_RADIO_NV:
		sex="女";
		break;
	}
	UpdateData(TRUE);

	m_adminset.Edit();
	m_adminset.m_User_ID=m_struserID;
	m_adminset.m_User_Name=m_strusername;
	m_adminset.m_Password=m_strpwd;
    m_adminset.m_User_Sex=sex;
	m_adminset.m_User_Number=m_strnumberID;
	m_adminset.Update();
	m_adminset.Close();
	RefreshData();
	MessageBox("修改成功!","请记住用户ID和密码!");

}

⌨️ 快捷键说明

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