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("两次输入密码不同,请重新输入"); 
	} 
 
 
 
}