📄 dlglogin.cpp
字号:
// DlgLogin.cpp : implementation file
//
#include "stdafx.h"
#include "Project.h"
#include "DlgLogin.h"
#include <comdef.h>
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlgLogin dialog
CDlgLogin::CDlgLogin(CWnd* pParent /*=NULL*/)
: CDialog(CDlgLogin::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlgLogin)
IfRegisted = false;
m_LoginCheckSet = FALSE;
m_LoginDSN = _T("ShopAssistant");
m_LoginDataBase = _T("TableAccount");
m_LoginUser = _T("");
m_LoginPwd = _T("");
//}}AFX_DATA_INIT
}
void CDlgLogin::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgLogin)
DDX_Check(pDX, IDC_CheckSet, m_LoginCheckSet);
DDX_Text(pDX, IDC_Login_DataBase, m_LoginDataBase);
DDX_Text(pDX, IDC_Login_DSN, m_LoginDSN);
DDX_Text(pDX, IDC_Login_User, m_LoginUser);
DDV_MaxChars(pDX, m_LoginUser, 6);
DDX_Text(pDX, IDC_Login_Pwd, m_LoginPwd);
DDV_MaxChars(pDX, m_LoginPwd, 6);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlgLogin, CDialog)
//{{AFX_MSG_MAP(CDlgLogin)
ON_BN_CLICKED(IDC_CheckSet, OnCheckSet)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlgLogin message handlers
BOOL CDlgLogin::OnInitDialog()
{
CDialog::OnInitDialog();
SetWindowPos(NULL,0,0,220,130,SWP_NOZORDER|SWP_NOMOVE); //绘制折叠的对话框
return TRUE;
}
void CDlgLogin::OnOK()
{
this->UpdateData(TRUE);
if(m_LoginUser== " ")
AfxMessageBox("用户不可为空!");
if(m_LoginPwd== " ")
AfxMessageBox("密码不可为空!");
HRESULT hr;
_ConnectionPtr pConn;
_CommandPtr pCommand;
try
{
_bstr_t Conn = "DSN="+_bstr_t(m_LoginDSN)+";"; //连接字串
pConn.CreateInstance(__uuidof(Connection));
hr=pConn->Open(Conn,_bstr_t(""),_bstr_t(""),adModeUnknown); //连接DSN
}
catch(_com_error& ex)
{
AfxMessageBox(ex.Description());
}
try
{
//拼写SQL字串
_bstr_t strSQL ="Select * From " +_bstr_t(m_LoginDataBase)+" Where AccountNo Like '";
strSQL+=_bstr_t(m_LoginUser);
strSQL+="' And Pswd Like'";
strSQL+=_bstr_t(m_LoginPwd);
strSQL+="'";
pCommand.CreateInstance(_uuidof(Command));
pCommand->ActiveConnection = pConn;
pCommand->CommandText = strSQL ;
_RecordsetPtr pRecordset;
pRecordset.CreateInstance (__uuidof (Recordset));
pRecordset->CursorLocation = adUseClient;
hr=pRecordset->Open((IDispatch *) pCommand, vtMissing, adOpenStatic, adLockOptimistic, adCmdUnknown);
//在密码表中查找,如果找到则成功登陆。
if (pRecordset->End)
{
AfxMessageBox("用户或密码不正确!");
pConn->Close();
pConn.Release();
m_LoginUser.Empty();
m_LoginPwd.Empty();
IfRegisted = false; //置标志位
}
else
IfRegisted = true; //置标志位
pRecordset.Release();
pConn.Release();
}
catch(_com_error& e)
{
AfxMessageBox(e.ErrorMessage());
}
CDialog::OnOK();
}
void CDlgLogin::OnCancel()
{
IfRegisted = false;
CDialog::OnCancel();
}
//===复选框响应函数================================
void CDlgLogin::OnCheckSet()
{
if(m_LoginCheckSet) //折叠状态翻转
m_LoginCheckSet = false;
else
m_LoginCheckSet = true;
int bottom; //对话框高度变量
if(m_LoginCheckSet==TRUE)
bottom=220; //展开
else
bottom=130; //折叠
SetWindowPos(NULL,0,0,220,bottom,SWP_NOZORDER|SWP_NOMOVE); //重绘对话框
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -