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

📄 logondialog.cpp

📁 < Visual C++数据库经典开发实例精解>>的实例源码
💻 CPP
字号:
// LogonDialog.cpp : implementation file
//

#include "stdafx.h"
#include "TestApp.h"
#include "LogonDialog.h"

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

/////////////////////////////////////////////////////////////////////////////
// CLogonDialog dialog


CLogonDialog::CLogonDialog(CWnd* pParent /*=NULL*/)
	: CDialog(CLogonDialog::IDD, pParent)
{
	//{{AFX_DATA_INIT(CLogonDialog)
	m_password = _T("");
	m_userid = _T("");
	m_pSetAdmin=NULL;	//初始化记录集指针
	m_pSetTeacher=NULL;	//初始化记录集指针
	//}}AFX_DATA_INIT
}


void CLogonDialog::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLogonDialog)
	DDX_Control(pDX, IDC_EDIT_USERID, m_objuserid);
	DDX_Control(pDX, IDC_EDIT_PASSWORD, m_objpassword);
	DDX_Control(pDX, IDC_COMBO_STATUS, m_status);
	DDX_Text(pDX, IDC_EDIT_PASSWORD, m_password);
	DDX_Text(pDX, IDC_EDIT_USERID, m_userid);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CLogonDialog, CDialog)
	//{{AFX_MSG_MAP(CLogonDialog)
	ON_BN_CLICKED(ID_BUTTON_CANCEL, OnButtonCancel)
	ON_BN_CLICKED(ID_BUTTON_OK, OnButtonOk)
	ON_WM_DESTROY()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLogonDialog message handlers

BOOL CLogonDialog::OnInitDialog() 
{
	CDialog::OnInitDialog();	
	//创建记录集指针,打开记录集
	m_pSetAdmin=new CSysUserSet(NULL);	
	m_pSetAdmin->Open();
	m_pSetTeacher=new CTeacherSet(NULL);
	m_pSetTeacher->Open();
	m_status.SetCurSel(0);//设置默认身份
	return TRUE;  
}



void CLogonDialog::OnCancel() 
{
	EndDialog(0);//关闭对话框,返回0,停止启动系统	
}

void CLogonDialog::OnButtonCancel() 
{
	EndDialog(0);//关闭对话框,返回0,停止启动系统	
}
void CLogonDialog::OnOK() 
{
	OnButtonOk();//检验登录信息是否正确
}
void CLogonDialog::OnButtonOk() 
{
	UpdateData(true);//将对话框数据传入变量
	if(m_userid=="")
	{
		MessageBox("请输入用户ID!","用户登录");
		m_objuserid.SetFocus();
		return;
	}
	CString status;
	m_status.GetWindowText(status);//获得用户身份
	//根据用户身份检验登录信息
	if("管理员"==status)
	{
		m_pSetAdmin->m_strFilter="userid='"+m_userid+"'";
		m_pSetAdmin->Requery();//查找系统用户记录
		if(m_pSetAdmin->IsBOF() && m_pSetAdmin->IsEOF())
		{
			//无用户记录,登录ID错误
			MessageBox("用户ID错误!","用户登录");
			m_objuserid.SetFocus();
			return;
		}else{
			//检查口令是否正确
			if(m_pSetAdmin->m_password!=m_password){
				MessageBox("口令错误!","用户登录");
				m_objpassword.SetFocus();
				return;
			}
		}

	}
	if("教师"==status)
	{
		m_pSetTeacher->m_strFilter="name='"+m_userid+"'";
		m_pSetTeacher->Requery();//查找系统用户记录
		if(m_pSetTeacher->IsBOF() && m_pSetTeacher->IsEOF())
		{
			//无用户记录,登录ID错误
			MessageBox("用户ID错误!","用户登录");
			m_objuserid.SetFocus();
			return;
		}else{
			//检查口令是否正确
			if(m_pSetTeacher->m_password!=m_password){
				MessageBox("口令错误!","用户登录");
				m_objpassword.SetFocus();
				return;
			}
		}
	}
	//登录信息正确,保存当前用户信息
	((CTestAppApp*)AfxGetApp())->CurrentUserName=m_userid;
	((CTestAppApp*)AfxGetApp())->CurrentUserPWD=m_password;
	((CTestAppApp*)AfxGetApp())->CurrentUserStatus=status;
	//关闭对话框,返回1,允许继续启动系统
	EndDialog(1);	
}

void CLogonDialog::OnDestroy() 
{
	//删除记录集指针
	delete m_pSetAdmin;
	delete m_pSetTeacher;
	CDialog::OnDestroy();	
}

⌨️ 快捷键说明

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