1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
// DlgLogin.cpp : implementation file
//
 
#include "stdafx.h"
#include "DlgLogin.h"
 
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
 
/////////////////////////////////////////////////////////////////////////////
// CDlgLogin dialog
 
 
CDlgLogin::CDlgLogin(CWnd* pParent /*=NULL*/)
    : CDialog(CDlgLogin::IDD, pParent)
{
    //{{AFX_DATA_INIT(CDlgLogin)
    m_strEditPassword = _T("");
    m_strEditNewPwd1 = _T("");
    m_strEditNewPwd2 = _T("");
    //}}AFX_DATA_INIT
 
    m_strOriginPwd = _T("");
    m_bLoginOK = FALSE;
}
 
void CDlgLogin::DoDataExchange(CDataExchange* pDX)
{
    CDialog::DoDataExchange(pDX);
    //{{AFX_DATA_MAP(CDlgLogin)
    DDX_Text(pDX, IDC_EDIT_PASSWD, m_strEditPassword);
    DDV_MaxChars(pDX, m_strEditPassword, 50);
    DDX_Text(pDX, IDC_EDIT_NEWPASSWD1, m_strEditNewPwd1);
    DDV_MaxChars(pDX, m_strEditNewPwd1, 50);
    DDX_Text(pDX, IDC_EDIT_NEWPASSWD2, m_strEditNewPwd2);
    DDV_MaxChars(pDX, m_strEditNewPwd2, 50);
    //}}AFX_DATA_MAP
}
 
BEGIN_MESSAGE_MAP(CDlgLogin, CDialog)
    //{{AFX_MSG_MAP(CDlgLogin)
    ON_BN_CLICKED(IDC_BUTTON_CHANGE, OnButtonChange)
    ON_BN_CLICKED(IDOK, &CDlgLogin::OnOK)
    ON_BN_CLICKED(IDCANCEL, &CDlgLogin::OnCancel)
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()
 
/////////////////////////////////////////////////////////////////////////////
// CDlgLogin message handlers
 
void CDlgLogin::OnOK() 
{
    // TODO: Add extra validation here
    UpdateData(TRUE);
 
    if(m_strEditPassword == _T(""))
    {
        m_bLoginOK = TRUE;
        CDialog::OnOK();
    }
 
    if (m_strOriginPwd == m_strEditPassword)
    {
        m_bLoginOK = TRUE;
        CDialog::OnOK();
    }    
}
 
void CDlgLogin::OnCancel() 
{
    // TODO: Add extra cleanup here
    m_bLoginOK = FALSE;
    
    CDialog::OnCancel();
}
 
void CDlgLogin::OnButtonChange() 
{
    // TODO: Add your control notification handler code here
    UpdateData(TRUE);
 
    if(m_strOriginPwd.IsEmpty())
        m_strOriginPwd = _T("sisvision");
 
    if(m_strEditPassword != _T("sisvision"))
    {
        if (m_strEditPassword != m_strOriginPwd)
        {
            AfxMessageBox(_T("Incorrect Password"));
            return;
        }
    }
    
    if (m_strEditNewPwd1 != m_strEditNewPwd2)
    {
        AfxMessageBox(_T("Difference new Password"));
        return;
    }
 
    AfxGetApp()->WriteProfileString(_T("Login"), _T("Password"), m_strEditNewPwd1);
 
    AfxMessageBox(_T("Change Password Completed"), MB_OK | MB_ICONINFORMATION);
 
    m_bLoginOK = FALSE;
 
    CDialog::OnCancel();
}
 
BOOL CDlgLogin::OnInitDialog() 
{
    CDialog::OnInitDialog();
    
 
    m_strOriginPwd = AfxGetApp()->GetProfileString(_T("Login"), _T("Password"), _T("sisvision"));
    
    return TRUE;
}