www.pudn.com > LoadMachineCode111.rar > Onlinelogin.cpp


// Onlinelogin.cpp : implementation file 
// 
 
#include "stdafx.h" 
#include "loadmachinecode.h" 
#include "Onlinelogin.h" 
#include "Onlinezfmm.h" 
#include "ChineseConvertor.h" 
 
#ifdef _DEBUG 
#define new DEBUG_NEW 
#undef THIS_FILE 
static char THIS_FILE[] = __FILE__; 
#endif 
 
///////////////////////////////////////////////////////////////////////////// 
// COnlinelogin dialog 
 
 
COnlinelogin::COnlinelogin(CWnd* pParent /*=NULL*/) 
	: CDialog(COnlinelogin::IDD, pParent) 
{ 
	//{{AFX_DATA_INIT(COnlinelogin) 
	m_cboUser = _T(""); 
	m_password = _T(""); 
	//}}AFX_DATA_INIT 
} 
 
 
void COnlinelogin::DoDataExchange(CDataExchange* pDX) 
{ 
	CDialog::DoDataExchange(pDX); 
	//{{AFX_DATA_MAP(COnlinelogin) 
	DDX_Control(pDX, IDC_CBOUSER, m_cboUserCtrl); 
	DDX_CBString(pDX, IDC_CBOUSER, m_cboUser); 
	DDX_Text(pDX, IDC_PASSWD, m_password); 
	DDV_MaxChars(pDX, m_password, 6); 
	//}}AFX_DATA_MAP 
} 
 
 
BEGIN_MESSAGE_MAP(COnlinelogin, CDialog) 
	//{{AFX_MSG_MAP(COnlinelogin) 
	ON_BN_CLICKED(IDD_LOGIN, OnLogin) 
	//}}AFX_MSG_MAP 
END_MESSAGE_MAP() 
 
///////////////////////////////////////////////////////////////////////////// 
// COnlinelogin message handlers 
 
BOOL COnlinelogin::OnInitDialog()  
{ 
	CDialog::OnInitDialog(); 
	//CChineseConvertor m_china; 
	//LPWSTR buffer[0]="李"; 
	//CString buff=m_china.ToMultiByte(buffer[0],1); 
	/* 
	USERINFO sysuser; 
 
	// TODO: Add extra initialization here 
	int IsNoFirstRun=AfxGetApp()->GetProfileInt("Datasource","IsFirstRun",0); 
	if(!IsNoFirstRun) 
	{ 
		strcpy(sysuser.name,"System"); 
		sysuser.oper=1;; 
		strcpy(sysuser.password,"System"); 
		AfxGetApp()->WriteProfileBinary("用户","User0000",(LPBYTE)&sysuser,sizeof(sysuser)); 
		AfxGetApp()->WriteProfileInt("用户","LastID",1); 
		AfxGetApp()->WriteProfileInt("Datasource","IsFirstRun",1); 
	} 
	else 
	{ 
		char *strOper[]={"主办出纳","主管会计"}; 
		UINT strOperlen=sizeof(strOper); 
		LPBYTE bt=new unsigned char[sizeof(sysuser)]; 
		CString  strID; 
		strID.Format("User%04u",0); 
		int LastID; 
		LastID=AfxGetApp()->GetProfileInt("用户","LastID",0); 
		for(int i=0;iGetProfileBinary("用户",strID,&bt,&strOperlen);i++) 
		{ 
			memcpy(&sysuser,bt,sizeof(sysuser)); 
			CString  strInfo; 
			strInfo.Format("%s[%s]",sysuser.name,strOper[sysuser.oper]); 
            m_cboUserCtrl.AddString(strInfo); 
			strID.Format("User%04u",i+1); 
		} 
		if(LastID>0) 
			m_cboUserCtrl.SetCurSel(0); 
		delete []bt; 
		return TRUE; 
	} 
	*/ 
	m_pset.Open(); 
	if(!m_pset.IsEOF()) 
	{ 
		m_pset.MoveFirst(); 
		while(!m_pset.IsEOF()) 
		{ 
			m_cboUserCtrl.AddString(m_pset.m_RName); 
			m_pset.MoveNext(); 
		} 
	} 
	else 
	{ 
		AfxMessageBox("数据库中没有用户"); 
		m_pset.Close(); 
		return FALSE; 
	} 
	m_pset.Close(); 
	m_cboUserCtrl.SetCurSel(0); 
	return TRUE;  // return TRUE unless you set the focus to a control 
	              // EXCEPTION: OCX Property Pages should return FALSE 
} 
 
void COnlinelogin::OnLogin()  
{ 
	// TODO: Add your control notification handler code here 
	/* 
	UpdateData(TRUE); 
	USERINFO UserInfo; 
	UINT strOperlen=sizeof(UserInfo); 
	LPBYTE bt=new unsigned char[sizeof(UserInfo)]; 
	CString  strID; 
	int id = m_cboUserCtrl.GetCurSel(); 
	strID.Format("User%04u",id); 
	if(AfxGetApp()->GetProfileBinary("用户",strID,&bt,&strOperlen)) 
	{ 
		memcpy(&UserInfo,bt,sizeof(UserInfo)); 
		delete []bt; 
		if(!m_password.Compare(UserInfo.password)) 
		{ 
			m_oper=UserInfo.oper ; 
			CDialog::EndDialog(0); 
			//CDialog::OnOK(); 
			COnlinezfmm zfmmDlg; 
			zfmmDlg.DoModal(); 
			return; 
		} 
	} 
	*/ 
	UpdateData(TRUE); 
	m_pset.Open(); 
	while(!m_pset.IsEOF()) 
	{ 
		if(m_password.Compare(m_pset.m_RPasswd)) 
		{ 
			m_pset.MoveNext(); 
		} 
		else 
		{ 
			if(m_cboUser.Compare(m_pset.m_RName)) 
			{ 
				m_pset.MoveNext(); 
			} 
			else 
			{ 
			m_oper=m_pset.m_RPopedom; 
			CDialog::EndDialog(0); 
			COnlinezfmm zfmmDlg; 
			zfmmDlg.strPerson=m_pset.m_RName; 
			zfmmDlg.DoModal(); 
			m_pset.Close(); 
			return; 
			} 
		} 
	} 
	AfxMessageBox("你输入的密码不准确或没有此用户"); 
	m_password.Empty(); 
	UpdateData(FALSE); 
	m_pset.Close(); 
	return; 
}