PassWordDlg.cpp
上传用户:yffx2008
上传日期:2014-10-12
资源大小:12414k
文件大小:3k
源码类别:

交通/航空行业

开发平台:

Visual C++

  1. // PassWordDlg.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "GpsSC.h"
  5. #include "PassWordDlg.h"
  6. #include "UserSet.h"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // CPassWordDlg dialog
  14. extern CGpsSCApp theApp;
  15. CPassWordDlg::CPassWordDlg(CWnd* pParent /*=NULL*/)
  16. : CDialog(CPassWordDlg::IDD, pParent)
  17. {
  18. //{{AFX_DATA_INIT(CPassWordDlg)
  19. m_strPassWord = _T("");
  20. m_strUsers = _T("");
  21. //}}AFX_DATA_INIT
  22. }
  23. void CPassWordDlg::DoDataExchange(CDataExchange* pDX)
  24. {
  25. CDialog::DoDataExchange(pDX);
  26. //{{AFX_DATA_MAP(CPassWordDlg)
  27. DDX_Control(pDX, IDC_USERCOMBO, m_ctrlUserCombo);
  28. DDX_Text(pDX, IDC_PASSWORD, m_strPassWord);
  29. DDV_MaxChars(pDX, m_strPassWord, 10);
  30. DDX_CBString(pDX, IDC_USERCOMBO, m_strUsers);
  31. //}}AFX_DATA_MAP
  32. }
  33. BEGIN_MESSAGE_MAP(CPassWordDlg, CDialog)
  34. //{{AFX_MSG_MAP(CPassWordDlg)
  35. //}}AFX_MSG_MAP
  36. END_MESSAGE_MAP()
  37. /////////////////////////////////////////////////////////////////////////////
  38. // CPassWordDlg message handlers
  39. BOOL CPassWordDlg::OnInitDialog() 
  40. {
  41. CDialog::OnInitDialog();
  42. // TODO: Add extra initialization here
  43. //InitDialog();
  44. m_strUsers = theApp.m_strLoginUser;
  45. UpdateData(FALSE);
  46. return TRUE;  // return TRUE unless you set the focus to a control
  47.               // EXCEPTION: OCX Property Pages should return FALSE
  48. }
  49. //Get project dir
  50. CString CPassWordDlg::GetProjectInDir()
  51. {
  52. CString Path;
  53. char Name[MAX_PATH+1];
  54. int Len,i;
  55. TCHAR chr = 0;
  56. GetModuleFileName(NULL,Name,MAX_PATH);
  57. Path = Name;
  58. Len = Path.GetLength();
  59. for(i = Len - 1; i >= 0; i--) {
  60. chr = Path.GetAt(i);
  61. if(chr == '\') break;
  62. }
  63. i++;
  64. Path = Path.Left(i);
  65. return Path;
  66. }
  67. //Get the conttent
  68. char * CPassWordDlg::GetConttent(const CString strpassderectory)
  69. {
  70. CFile f;
  71. int m_lFileBufLength;
  72. char * m_pFileBuf = NULL;
  73. if(!f.Open(strpassderectory,CFile::modeRead,NULL))
  74. {
  75. AfxMessageBox("open files error!");
  76. return "nihao";
  77. }
  78. f.SeekToBegin();
  79. m_lFileBufLength = f.GetLength();
  80. m_pFileBuf = new char[m_lFileBufLength];
  81. f.SeekToBegin();
  82. f.Read(m_pFileBuf,m_lFileBufLength);
  83. f.Close();
  84. m_pFileBuf[m_lFileBufLength] = '';
  85. int a = strlen(m_pFileBuf);
  86. return m_pFileBuf;
  87. }
  88. //Inite the dilalog
  89. void CPassWordDlg::InitDialog()
  90. {
  91. return;
  92. CString strDir = GetProjectInDir();
  93. strDir += "sysinit.ini";
  94. CString strTmpUser(""),strTmpPass("");
  95. //get conttent
  96. BYTE useNo = 0;
  97. char * m_pConttent = GetConttent(strDir);
  98. CString strConttent(m_pConttent);
  99. //get hte Number of the users
  100. for(int i = 0;i < strConttent.GetLength(); i++){
  101. if(strConttent.GetAt(i) == '@')
  102. useNo ++;
  103. }
  104. int k1 = strConttent.Find('$');
  105. int k2 = strConttent.Find('#');
  106. int k3 = strConttent.Find('@');
  107. AfxMessageBox(strConttent);
  108. }
  109. void CPassWordDlg::OnOK() 
  110. {
  111. // TODO: Add extra validation here
  112. UpdateData(TRUE);
  113. CUserSet cSet;
  114. if(cSet.CheckLogin(m_strUsers,m_strPassWord))
  115. {
  116. theApp.m_strLoginUser = m_strUsers;
  117. CDialog::OnOK();
  118. }
  119. }