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;
}