📄 logindlg.cpp
字号:
// LoginDlg.cpp : implementation file
//
#include "stdafx.h"
#include "车友.h"
#include "LoginDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLoginDlg dialog
CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLoginDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CLoginDlg)
m_times = 2;
m_dwUser = 0;
m_pas = _T("");
//}}AFX_DATA_INIT
}
void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLoginDlg)
DDX_Control(pDX, IDC_DLOG_CUSER, m_uList);
DDX_Text(pDX, IDC_DLOG_CPASWORD, m_pas);
DDV_MaxChars(pDX, m_pas, 16);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)
//{{AFX_MSG_MAP(CLoginDlg)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLoginDlg message handlers
DWORD CLoginDlg::GetUserInfo() const
{
return m_dwUser;
}
BOOL CLoginDlg::OnInitDialog()
{
CDialog::OnInitDialog();
USERINFO theUser;
char * strOper[] = { {"信息录入员"},{"系统管理员"} };
UINT size = sizeof(USERINFO);
LPBYTE bt = new unsigned char[sizeof(theUser)];
CString strID;
strID.Format("User%04u",0);
int lastID;
lastID = AfxGetApp()->GetProfileInt("用户","LastID",0);
for(int i=0;i<lastID && AfxGetApp()->GetProfileBinary("用户",strID,&bt,&size);i++)
{
memcpy(&theUser,bt,sizeof(theUser));
CString strInfo;
strInfo.Format("%s [%s]",theUser.name,strOper[theUser.oper]);
m_uList.AddString(strInfo);
strID.Format("User%04u",i+1);
}
if(lastID > 0)
m_uList.SetCurSel(0);
delete [] bt;
return TRUE;
}
void CLoginDlg::OnOK()
{
UpdateData();
USERINFO theUser;
UINT size = sizeof(theUser);
LPBYTE bt = new unsigned char[sizeof(theUser)];
CString strID;
int id = m_uList.GetCurSel();
strID.Format("User%04u",id);
if(AfxGetApp()->GetProfileBinary("用户",strID,&bt,&size))
{
memcpy(&theUser,bt,sizeof(theUser));
delete [] bt;
if(!m_pas.Compare(theUser.password))
{
m_dwUser = theUser.oper;
CDialog::OnOK();
return;
}
}
else
{
delete [] bt;
MessageBox("没有该用户的信息,请与系统管理员联系。","读取用户数据错误",MB_OK|MB_ICONSTOP);
return;
}
if(m_times)
{
m_times--;
MessageBox("用户密码不正确!请再次尝试...","登陆失败...",MB_OK|MB_ICONSTOP);
GetDlgItem(IDC_DLOG_CPASWORD)->SetFocus();
}
else
{
MessageBox("用户密码不正确!\n您的登陆失败次数已达三次,程序将退出。\n请与系统管理员联系。","登陆失败...",MB_OK|MB_ICONSTOP);
CDialog::OnCancel();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -