Login.cpp
上传用户:connie527
上传日期:2022-04-15
资源大小:4326k
文件大小:3k
源码类别:

行业应用

开发平台:

Visual C++

  1. // Login.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "capture.h"
  5. #include "Login.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CLogin dialog
  13. CLogin::CLogin(CWnd* pParent /*=NULL*/)
  14. : CDialog(CLogin::IDD, pParent)
  15. {
  16. //{{AFX_DATA_INIT(CLogin)
  17. m_Name = _T("");
  18. m_PassWord = _T("");
  19. //}}AFX_DATA_INIT
  20. m_Time = 0;
  21. }
  22. void CLogin::DoDataExchange(CDataExchange* pDX)
  23. {
  24. CDialog::DoDataExchange(pDX);
  25. //{{AFX_DATA_MAP(CLogin)
  26. DDX_Control(pDX, IDC_OK, m_OK);
  27. DDX_Control(pDX, IDC_CANCEL, m_Cancel);
  28. DDX_Text(pDX, IDC_EDIT1, m_Name);
  29. DDX_Text(pDX, IDC_EDIT2, m_PassWord);
  30. //}}AFX_DATA_MAP
  31. }
  32. BEGIN_MESSAGE_MAP(CLogin, CDialog)
  33. //{{AFX_MSG_MAP(CLogin)
  34. // NOTE: the ClassWizard will add message map macros here
  35. //}}AFX_MSG_MAP
  36. END_MESSAGE_MAP()
  37. /////////////////////////////////////////////////////////////////////////////
  38. // CLogin message handlers
  39. BOOL CLogin::PreTranslateMessage(MSG* pMsg) 
  40. {
  41. // TODO: Add your specialized code here and/or call the base class
  42. if(pMsg->message==WM_KEYDOWN && pMsg->wParam==13)
  43. {
  44. pMsg->wParam = 9;
  45. }
  46. if(pMsg->message == WM_LBUTTONDOWN)
  47. {
  48. CRect rect,rc;
  49. m_OK.GetWindowRect(&rect);
  50. m_Cancel.GetWindowRect(&rc);
  51. CPoint point;
  52. GetCursorPos(&point);
  53. if(rect.PtInRect(point))
  54. {
  55. UpdateData(TRUE);
  56. if(m_Name.IsEmpty() || m_PassWord.IsEmpty())
  57. {
  58. MessageBox("用户名或密码不能为空");
  59. return FALSE;
  60. }
  61. m_Time++;
  62. try
  63. {
  64. //创建连接对象实例
  65. m_pConnection.CreateInstance("ADODB.Connection");
  66. //设置连接字符串
  67. CString strConnect="DRIVER={Microsoft Access Driver (*.mdb)};
  68. uid=;pwd=;DBQ=shujuku.mdb;";
  69. //使用Open方法连接数据库
  70. m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);
  71. }
  72. catch(_com_error e)
  73. {
  74. AfxMessageBox(e.Description());
  75. }
  76. CString sql;
  77. sql.Format("select * from tb_user where 用户名 = '%s' and 密码 = '%s'",
  78. m_Name,m_PassWord);
  79. m_pRecordset = m_pConnection->Execute((_bstr_t)sql,NULL,adCmdText);
  80. if(!m_pRecordset->adoEOF)
  81. {
  82. CDialog::OnOK();
  83. }
  84. else
  85. {
  86. if(m_Time == 3)
  87. {
  88. MessageBox("密码3次不正确");
  89. CDialog::OnCancel();
  90. }
  91. else
  92. {
  93. MessageBox("用户名或密码不正确");
  94. m_Name = "";
  95. m_PassWord = "";
  96. UpdateData(FALSE);
  97. }
  98. }
  99. m_pRecordset->Close();
  100. m_pConnection->Close();
  101. }
  102. if(rc.PtInRect(point))
  103. {
  104. CDialog::OnCancel();
  105. }
  106. }
  107. return CDialog::PreTranslateMessage(pMsg);
  108. }