📄 loginform.cpp
字号:
// LoginForm.cpp : implementation file
//
#include "stdafx.h"
#include "resource.h"
#include "LoginForm.h"
#include "User.h"
#include "MainFrm.h"
#include "SQLCEDemo.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CLoginForm
IMPLEMENT_DYNCREATE(CLoginForm, CFormView)
CLoginForm::CLoginForm()
: CFormView(CLoginForm::IDD)
{
//{{AFX_DATA_INIT(CLoginForm)
m_strUserName = _T("");
m_strPassword = _T("");
//}}AFX_DATA_INIT
}
CLoginForm::~CLoginForm()
{
}
void CLoginForm::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLoginForm)
DDX_Text(pDX, IDC_EDIT_USERNAME, m_strUserName);
DDX_Text(pDX, IDC_EDIT_PASSWORD, m_strPassword);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLoginForm, CFormView)
//{{AFX_MSG_MAP(CLoginForm)
ON_BN_CLICKED(IDC_BUTTON_LOGIN, OnButtonLogin)
ON_BN_CLICKED(IDC_BUTTON_QUIT, OnButtonQuit)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLoginForm diagnostics
#ifdef _DEBUG
void CLoginForm::AssertValid() const
{
CFormView::AssertValid();
}
void CLoginForm::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CLoginForm message handlers
void CLoginForm::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
CEdit *pEdit = (CEdit*)GetDlgItem(IDC_EDIT_USERNAME);
CString strSection = L"User";
CString strStringItem = L"UserName";
CWinApp* pTheApp = AfxGetApp();
CString strValue;
strValue = pTheApp->GetProfileString(strSection, strStringItem);
if (strValue.GetLength() > 1)
{
pEdit->SetWindowText(strValue);
}
}
void CLoginForm::OnButtonLogin()
{
// TODO: Add your control notification handler code here
CSQLCEDemoApp *pTheApp = (CSQLCEDemoApp*)AfxGetApp();
UpdateData(TRUE);
if (m_strUserName.GetLength() < 1)
{
AfxMessageBox(L"请输入用户名", MB_OK | MB_ICONEXCLAMATION);
return;
}
CUser::m_pUser_Name = m_strUserName;
CWaitCursor waitcursor;
AdoNS::_ConnectionPtr pConnection= pTheApp->m_pADOConn->OpenDB(_T("\\palmheart.sdf"));
if ((pConnection != NULL) &&
(pTheApp->m_pADORs->PutConnection(pConnection)))
{
CWaitCursor waitcursor;
//开始密码校验
int nReturn = CUser::VerifyUser(m_strUserName, m_strPassword, pTheApp->m_pADORs);
switch (nReturn) {
case -4:
AfxMessageBox(L"密码错误", MB_OK | MB_ICONEXCLAMATION);
//断开连接
if (pTheApp->m_pADORs->IsOpened())
pTheApp->m_pADORs->Close();
if (pTheApp->m_pADOConn->IsConnected())
pTheApp->m_pADOConn->Close();
if (pConnection->State == AdoNS::adStateOpen)
pConnection->Close();
return;
break;
case -3:
//断开连接
if (pTheApp->m_pADORs->IsOpened())
pTheApp->m_pADORs->Close();
if (pTheApp->m_pADOConn->IsConnected())
pTheApp->m_pADOConn->Close();
if (pConnection->State == AdoNS::adStateOpen)
pConnection->Close();
//到同步界面
if (AfxMessageBox(L"用户列表错误,建议重新下载数据,或者立刻上传所有数据,确定同步数据吗?", MB_YESNO | MB_ICONQUESTION) == IDYES)
{
::PostMessage(AfxGetMainWnd()->m_hWnd,WM_USER_COMMAND, CMainFrame.RDAForm, 0);
}
return;
break;
case -2:
AfxMessageBox(L"一般性错误", MB_OK | MB_ICONEXCLAMATION);
//断开连接
if (pTheApp->m_pADORs->IsOpened())
pTheApp->m_pADORs->Close();
if (pTheApp->m_pADOConn->IsConnected())
pTheApp->m_pADOConn->Close();
if (pConnection->State == AdoNS::adStateOpen)
pConnection->Close();
return;
break;
case -1:
AfxMessageBox(L"用户名错误", MB_OK | MB_ICONEXCLAMATION);
//断开连接
if (pTheApp->m_pADORs->IsOpened())
pTheApp->m_pADORs->Close();
if (pTheApp->m_pADOConn->IsConnected())
pTheApp->m_pADOConn->Close();
if (pConnection->State == AdoNS::adStateOpen)
pConnection->Close();
return;
break;
case 0:
AfxMessageBox(L"未知错误", MB_OK | MB_ICONEXCLAMATION);
//断开连接
if (pTheApp->m_pADORs->IsOpened())
pTheApp->m_pADORs->Close();
if (pTheApp->m_pADOConn->IsConnected())
pTheApp->m_pADOConn->Close();
if (pConnection->State == AdoNS::adStateOpen)
pConnection->Close();
return;
break;
case 1:
CUser* pUser = new CUser(m_strUserName, pTheApp->m_pADORs);
CUser::m_pUser_ID = pUser->getUser_ID(); //记录userid
::PostMessage(AfxGetMainWnd()->m_hWnd,WM_USER_COMMAND, CMainFrame.MainForm, 0);
delete pUser;
return;
break;
}
waitcursor.Restore();
}
else
{
if (AfxMessageBox(L"数据库不存在,将要同步数据,确定同步吗?", MB_YESNO | MB_ICONQUESTION) == IDYES)
{
::PostMessage(AfxGetMainWnd()->m_hWnd,WM_USER_COMMAND, CMainFrame.RDAForm, 0);
}
}
waitcursor.Restore();
}
void CLoginForm::OnButtonQuit()
{
::PostQuitMessage(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -