www.pudn.com > rsdagl.rar > ModifyPassword.cpp
// ModifyPassword.cpp : 实现文件
//
#include "stdafx.h"
#include "人事管理系统.h"
#include "ModifyPassword.h"
#include ".\modifypassword.h"
#include "MainFrm.h"
#include "BkStatic.h"
// CModifyPassword 对话框
IMPLEMENT_DYNAMIC(CModifyPassword, CDialog)
CModifyPassword::CModifyPassword(CWnd* pParent /*=NULL*/)
: CDialog(CModifyPassword::IDD, pParent)
, m_activeuser(_T(""))
, m_activeuserpassword(_T(""))
{
}
CModifyPassword::~CModifyPassword()
{
}
void CModifyPassword::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_ACTIVEUSER, m_activeuser);
DDX_Control(pDX, IDC_MODIFYLOGO, m_modifylogo);
}
BEGIN_MESSAGE_MAP(CModifyPassword, CDialog)
ON_EN_CHANGE(IDC_NEWPAS, OnEnChangeNewpas)
ON_BN_CLICKED(IDC_OK1, OnBnClickedOk1)
ON_BN_CLICKED(ID_OK3, OnBnClickedOk3)
ON_BN_CLICKED(IDC_MODIFY, OnBnClickedModify)
END_MESSAGE_MAP()
// CModifyPassword 消息处理程序
BOOL CModifyPassword::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: 在此添加额外的初始化
CMainFrame *pFrm = (CMainFrame *)AfxGetApp()->m_pMainWnd;
m_activeuser=pFrm->m_AdminInfo.username;
m_activeuserpassword=pFrm->m_AdminInfo.password;
SetDlgItemText(IDC_ACTIVEUSER,m_activeuser);
GetDlgItem(IDC_NEWPAS)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_NEWPAS2)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC2)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC3)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_MODIFY)->ShowWindow(SW_HIDE);
GetDlgItem(ID_OK2)->ShowWindow(SW_HIDE);
m_modifylogo.settext(" 管理员修改密码");
return TRUE; // return TRUE unless you set the focus to a control
// 异常: OCX 属性页应返回 FALSE
}
bool CModifyPassword::initdatebase(void)
{
m_pRecordset.CreateInstance(_uuidof(Recordset));
try
{
m_pRecordset->Open("SELECT * FROM 管理员 ORDER BY id",theApp.m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
AfxMessageBox("111111111修改数据时连接错误,请勿乱修改数据库和数据表结构\n如有特别需要请联系作者定制软件:)",MB_OK);
return false;
}
return true;
}
void CModifyPassword::OnEnChangeNewpas()
{
// TODO: 如果该控件是 RICHEDIT 控件,则它将不会
// 发送该通知,除非重写 CDialog::OnInitDialog()
// 函数并调用 CRichEditCtrl().SetEventMask(),
// 同时将 ENM_CHANGE 标志“或”运算到掩码中。
// TODO: 在此添加控件通知处理程序代码
}
void CModifyPassword::OnBnClickedOk1()
{
// TODO: 在此添加控件通知处理程序代码
CString cs;
GetDlgItemText(IDC_NOWPASSWORD,cs);
if(strcmp(cs,m_activeuserpassword)==0)
{
GetDlgItem(IDC_NEWPAS)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_NEWPAS2)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC2)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_STATIC3)->ShowWindow(SW_SHOW);
GetDlgItem(IDC_NOWPASSWORD)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_OK1)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_STATIC1)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_MODIFY)->ShowWindow(SW_SHOW);
GetDlgItem(ID_OK3)->ShowWindow(SW_HIDE);
GetDlgItem(ID_OK2)->ShowWindow(SW_SHOW);
}
else
{
AfxMessageBox("身份验证失败!!!\n请联系管理员",MB_OK);
}
}
void CModifyPassword::OnBnClickedOk3()
{
// TODO: 在此添加控件通知处理程序代码
OnOK();
}
void CModifyPassword::OnBnClickedModify()
{
// TODO: 在此添加控件通知处理程序代码
CString cs1,cs2;
GetDlgItemText(IDC_NEWPAS,cs1);
GetDlgItemText(IDC_NEWPAS2,cs2);
if(strcmp(cs1,cs2)==0)
{
initdatebase();
try
{
_variant_t vAdmin,vPassword,vAffected;
m_pRecordset->MoveFirst();
CString Sqlcommand; //执行SQL语句
Sqlcommand.Format("UPDATE 管理员 SET 密码='%s' WHERE 管理员='%s'",cs1,m_activeuser);
theApp.m_pConnection->Execute(_bstr_t(Sqlcommand),&vAffected,adCmdText);
AfxMessageBox("密码修改成功,请牢记您的密码",MB_OK);
CMainFrame* pFrm = (CMainFrame *)AfxGetApp()->m_pMainWnd; //修改框架类中的密码值
pFrm->m_AdminInfo.password=cs1;
OnOK();
}
catch(_com_error e)
{
AfxMessageBox("密码修改出错!",MB_OK);
}
}
else
{
AfxMessageBox("两次输入密码不同,请重新输入");
}
}