LoginDialog.cpp
上传用户:lvjun8202
上传日期:2013-04-30
资源大小:797k
文件大小:3k
源码类别:

SNMP编程

开发平台:

C/C++

  1. // LoginDialog.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "oam.h"
  5. #include "LoginDialog.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. extern COAMApp theApp;
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CLoginDialog dialog
  14. CLoginDialog::CLoginDialog(CWnd* pParent /*=NULL*/)
  15. : CDialog(CLoginDialog::IDD, pParent)
  16. {
  17. //{{AFX_DATA_INIT(CLoginDialog)
  18. m_password = _T("");
  19. m_user = _T("");
  20. //}}AFX_DATA_INIT
  21. }
  22. void CLoginDialog::DoDataExchange(CDataExchange* pDX)
  23. {
  24. CDialog::DoDataExchange(pDX);
  25. //{{AFX_DATA_MAP(CLoginDialog)
  26. DDX_Control(pDX, IDC_LOCK, m_Lock);
  27. DDX_Text(pDX, IDC_PASSWORD, m_password);
  28. DDX_Text(pDX, IDC_USER, m_user);
  29. DDX_Control(pDX, IDOK, m_btOk);
  30. DDX_Control(pDX, IDCANCEL, m_btCancel);
  31. //}}AFX_DATA_MAP
  32. }
  33. BEGIN_MESSAGE_MAP(CLoginDialog, CDialog)
  34. //{{AFX_MSG_MAP(CLoginDialog)
  35. ON_WM_TIMER()
  36. ON_WM_DESTROY()
  37. //}}AFX_MSG_MAP
  38. END_MESSAGE_MAP()
  39. /////////////////////////////////////////////////////////////////////////////
  40. // CLoginDialog message handlers
  41. void CLoginDialog::OnOK() 
  42. {
  43. // TODO: Add extra validation here
  44. UpdateData(true);
  45. int flag=0;
  46. _variant_t vID,vUsername,vPassword,vUserpower;
  47. // _variant_t vUsername,vBirthday,vID,vOld;
  48. try
  49. {
  50. m_pRecordset.CreateInstance("ADODB.Recordset");
  51. m_pRecordset->Open( "SELECT * FROM users",_variant_t((IDispatch*)theApp.m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
  52.    
  53. while(!m_pRecordset->adoEOF)
  54. {
  55. vID = m_pRecordset->GetCollect("ID");
  56. vUsername = m_pRecordset->GetCollect("username");
  57. vPassword = m_pRecordset->GetCollect("password");
  58. vUserpower = m_pRecordset->GetCollect("userpower");
  59. if (((_bstr_t)vUsername==m_user)&&((_bstr_t)vPassword==m_password))
  60. {
  61.   flag=1;
  62.   power=(LPCTSTR)(_bstr_t)vUserpower;
  63. break;
  64. }
  65. m_pRecordset->MoveNext();
  66. }
  67. }
  68. catch(_com_error e)///捕捉异常
  69. {
  70. AfxMessageBox("读取数据库失败!");///显示错误信息
  71. }
  72. if (flag==0) /*合法用户*/
  73. {  
  74. AfxMessageBox("对不起,用户名或密码错误,无法登录!");
  75. exit(0);
  76. }
  77. CDialog::OnOK();
  78. }
  79. BOOL CLoginDialog::OnInitDialog() 
  80. {
  81. CDialog::OnInitDialog();
  82. m_btOk.LoadBitmaps(IDB_OK);
  83. m_btOk.SetTextAlignment(CTrackLookButton::AlignRight);
  84. m_btCancel.LoadBitmaps(IDB_CANCEL);
  85. m_btCancel.SetTextAlignment(CTrackLookButton::AlignRight);
  86. SetTimer(0,500,NULL);
  87. // TODO: Add extra initialization here
  88. m_IconLock=AfxGetApp()->LoadIcon(IDI_LOCK);
  89. m_IconUnlock=AfxGetApp()->LoadIcon(IDI_UNLOCK);
  90. return TRUE;  // return TRUE unless you set the focus to a control
  91.               // EXCEPTION: OCX Property Pages should return FALSE
  92. }
  93. void CLoginDialog::OnTimer(UINT nIDEvent) 
  94. {
  95. static BOOL bLockState=TRUE;
  96. if(bLockState)
  97. {
  98. m_Lock.SetIcon(m_IconLock);
  99. bLockState=!bLockState;
  100. }
  101. else 
  102. {
  103. m_Lock.SetIcon(m_IconUnlock);
  104. bLockState=!bLockState;
  105. }
  106. CDialog::OnTimer(nIDEvent);
  107. }
  108. void CLoginDialog::OnDestroy() 
  109. {
  110. CDialog::OnDestroy();
  111. // TODO: Add your message handler code here
  112. KillTimer(0);
  113. }