⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logindlg.cpp

📁 支持ACCESS数据库的数据的查询、打印、统计等
💻 CPP
字号:
// LoginDLG.cpp : implementation file
//

#include "stdafx.h"
#include "Material_MIS.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_sPWD = _T("");
	m_sUSER = _T("请输入用户名");
	//}}AFX_DATA_INIT
}


void CLoginDLG::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLoginDLG)
	DDX_Text(pDX, IDC_LOGIN_PWD, m_sPWD);
	DDX_Text(pDX, IDC_LOGIN_USER, m_sUSER);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CLoginDLG, CDialog)
	//{{AFX_MSG_MAP(CLoginDLG)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLoginDLG message handlers

void CLoginDLG::OnOK() 
{
		// TODO: Add extra validation here
	// Check UserName Vadilaty
	UpdateData(true);
    if( FAILED(::CoInitialize(NULL)) ) 
	 {
 	     AfxMessageBox("ADO Init failed");
    		return;
	 }
 	 try
	 {
   		theApp.ADOConn.CreateInstance(__uuidof(Connection));
 			theApp.ADOConn->Open("DSN=user;","","", adConnectUnspecified);
	 }
 	 // 捕捉例外
 	 catch(_com_error &e)
	 {
 		CString err;
 		err.Format("%s", (char*)(e.Description()) );
		AfxMessageBox(err);
	 }
 	 catch(...)
	 {
 		AfxMessageBox("Unknown Error...");
	 }
 	
 	 // 初始化ADO记录集
 	 theApp.m_pADOSet.CreateInstance(__uuidof(Recordset));


	 
	
	m_sUSER.TrimRight(" ");
    m_sUSER.TrimLeft(" ");
	if ( ""==m_sUSER )
	{
		AfxMessageBox(_T("请填写用户名"), MB_ICONEXCLAMATION);
        return;
	}
		
	_variant_t Holder, strQuery;
    strQuery = "select * from user where username='"+m_sUSER+"'";
	theApp.ADOExecute(theApp.m_pADOSet, strQuery);
	int iCount = theApp.m_pADOSet->GetRecordCount();
	if ( 0==iCount ) 
	{
		theApp.m_iLoginCount++;
		if ( theApp.m_iLoginCount>2 ) 
		{
			AfxMessageBox("没有这个用户\n三次输入均不正确,请核对后再来", MB_ICONEXCLAMATION);	
			CDialog::OnCancel();
		    return;
		}
		AfxMessageBox("没有这个用户,请重新输入用户名", MB_ICONEXCLAMATION);	
	    return;
	}
	
	CString sPWD;
	theApp.m_pADOSet->MoveFirst();
	Holder = theApp.m_pADOSet->GetCollect("pwd");
	sPWD = Holder.vt==VT_NULL?"":(char*)(_bstr_t)Holder;
	if ( 0!=sPWD.Compare(m_sPWD) )
	{
		theApp.m_iLoginCount++;
		if ( theApp.m_iLoginCount>2 ) 
		{
			AfxMessageBox("输入密码不正确\n三次输入均不正确,请核对后再来", MB_ICONEXCLAMATION);	
			CDialog::OnCancel();
		    return;
		}
		AfxMessageBox("输入密码不正确,请重新输入", MB_ICONEXCLAMATION);	
	    return;
	}
	
	// Get Login User
	theApp.m_sCurrentUser = m_sUSER;
	 if( adStateOpen == theApp.ADOConn->State )	theApp.ADOConn->Close();
	  theApp.ADOConn.Release();
    
	 // 释放ADO记录集
	 if(adStateOpen==theApp.m_pADOSet->State)	theApp.m_pADOSet->Close();
    	theApp.m_pADOSet.Release();
	 	
	CDialog::OnOK();
}


BOOL CLoginDLG::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	((CEdit*)GetDlgItem(IDC_LOGIN_USER))->SetLimitText(15);
    ((CEdit*)GetDlgItem(IDC_LOGIN_PWD))->SetLimitText(10);
	
	// Set Caption Font
	//CFont m_Font;
    m_fMyFont.CreatePointFont(180,"华文彩云",NULL);
        
	((CStatic *)GetDlgItem(IDC_LOGIN_CAPTION))->SetFont(&m_fMyFont, true);

	((CEdit*)GetDlgItem(IDC_LOGIN_USER))->SetFocus();

	return FALSE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

⌨️ 快捷键说明

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