logindlg.cpp

来自「用Visual c++.net开发的图书管理系统」· C++ 代码 · 共 109 行

CPP
109
字号
// LoginDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "myBook.h"
#include "LoginDlg.h"
#include ".\logindlg.h"


// CLoginDlg 对话框

IMPLEMENT_DYNAMIC(CLoginDlg, CDialog)
CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CLoginDlg::IDD, pParent)
	, m_strID(_T(""))
	, m_strPass(_T(""))
{
}

CLoginDlg::~CLoginDlg()
{
}

void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_EDIT_ID, m_strID);
	DDX_Text(pDX, IDC_EDIT_PASS, m_strPass);
}


BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)
	ON_BN_CLICKED(IDC_CHECK_READER, OnBnClickedCheckReader)
END_MESSAGE_MAP()


// CLoginDlg 消息处理程序

BOOL CLoginDlg::OnInitDialog()
{
	CDialog::OnInitDialog();
	return TRUE;
}

void CLoginDlg::OnOK()
{
	UpdateData( TRUE );

	if( IsDlgButtonChecked( IDC_CHECK_READER ) == BST_CHECKED )
	{
		theApp.bReader = TRUE;
		CDialog::OnOK();
		return;
	}
	if( m_strID.IsEmpty() )
	{
		return;
	}
	CString strSQL;
	BOOL bMatch = FALSE;
	strSQL.Format( _T("SELECT TOP 1 [Password] FROM my_Administer WHERE Account='%s'"), m_strID );
	try
	{
		CDatabase db;
		db.OpenEx(_T("DSN=myLib;UID=sa;PWD='';"), CDatabase::noOdbcDialog);
		CRecordset rset(&db);
		rset.Open(CRecordset::dynaset,strSQL);
		CString strValue;
		if ( ! rset.IsEOF() )
		{
			rset.GetFieldValue((short)0, strValue);
			if ( strValue.Trim() == m_strPass.Trim() )
			{
				bMatch = TRUE;
			}
			else
			{
				MessageBox( _T("口令或密码错误!"), NULL, MB_OK | MB_ICONERROR );
			}
		}
		rset.Close();
		db.Close();
	}
	catch ( CDBException *e )
	{
		e->ReportError();
		e->Delete();
	}
	if ( bMatch )
	{
		theApp.strMasterID = m_strID;
		CDialog::OnOK();
	}
}

void CLoginDlg::OnBnClickedCheckReader()
{
	if( IsDlgButtonChecked( IDC_CHECK_READER ) == BST_CHECKED )
	{
		GetDlgItem( IDC_EDIT_ID )->EnableWindow( FALSE );
		GetDlgItem( IDC_EDIT_PASS )->EnableWindow( FALSE );
	}
	else
	{
		GetDlgItem( IDC_EDIT_ID )->EnableWindow( TRUE );
		GetDlgItem( IDC_EDIT_PASS )->EnableWindow( TRUE );
	}
}

⌨️ 快捷键说明

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