📄 login.cpp
字号:
// Login.cpp : implementation file
//
#include "stdafx.h"
#include "SIMS.h"
#include "Login.h"
#include "LoginSet.h"
#include <odbcinst.h>
extern CDatabase db;
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLogin dialog
CLogin::CLogin(CWnd* pParent /*=NULL*/)
: CDialog(CLogin::IDD, pParent)
{
//{{AFX_DATA_INIT(CLogin)
m_strDSN = _T("SIMS");
m_username = _T("");
m_password = _T("");
count=1;
//}}AFX_DATA_INIT
}
void CLogin::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLogin)
DDX_CBString(pDX, IDC_COMBO1, m_strDSN);
DDX_Text(pDX, IDC_EDIT1, m_username);
DDX_Text(pDX, IDC_EDIT2, m_password);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLogin, CDialog)
//{{AFX_MSG_MAP(CLogin)
ON_WM_CTLCOLOR()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLogin message handlers
BOOL CLogin::OnInitDialog()
{
CDialog::OnInitDialog();
UpdateData(false);
// TODO: Add extra initialization here
//add datesource
SQLConfigDataSource(NULL,ODBC_ADD_DSN,"Microsoft Access Driver (*.mdb)",
"DSN=SIMS;DBQ=.\\DataSource\\SIMS.mdb;Description=ODBC数据源;DataDirectory=.\\DataSource");
//add datesource
LOGFONT LogFont;
GetFont()->GetLogFont(&LogFont);
LogFont.lfHeight+=LogFont.lfHeight/2;
LogFont.lfWidth+=LogFont.lfWidth/2;
m_font.CreateFontIndirect(&LogFont);
GetDlgItem(IDC_STATIC_HEAD)->SetFont(&m_font);
m_brush.CreateSolidBrush(RGB(74,142,184));
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
HBRUSH CLogin::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
pDC->SetBkMode(TRANSPARENT);
return m_brush;
}
void CLogin::OnOK()
{
UpdateData(true);
if(!db.IsOpen()) db.Open(m_strDSN);
CLoginSet rs(&db);
CString str,strSQL;
strSQL.Format("select* from USER_PSWD where USER='%s' and PSWD='%s'",m_username,m_password);
rs.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
if(rs.GetRecordCount()==0)
{
if(count<3)
{
MessageBox("输入的用户名或密码错误,请重新输入!","登陆提示");
count++;
rs.Close();
}
else
{
MessageBox("尝试次数太多,程序关闭!","登陆提示");
rs.Close();
OnCancel();
}
}
else
{
CDialog::OnOK();
}
}
void CLogin::OnCancel()
{
// TODO: Add extra cleanup here
db.Close();
CDialog::OnCancel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -