⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 setsheet.cpp

📁 这是一个学生信息管理系统
💻 CPP
字号:
// SetSheet.cpp : 实现文件
//

#include "stdafx.h"
#include "SMS.h"
#include "SMSDlg.h"
#include "SetSheet.h"


// CSetSheet

IMPLEMENT_DYNAMIC(CSetSheet, CPropertySheet)

CSetSheet::CSetSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
	:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
	,m_pUserSet(&theApp.m_db)
{
    AddPage(&m_pSystemSetPage);
	AddPage(&m_pUserSetPage);
	m_backcolor=m_RGB_BkColor;
	m_brush.CreateSolidBrush(m_backcolor);
}

CSetSheet::CSetSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
	:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
	,m_pUserSet(&theApp.m_db)
{
    AddPage(&m_pSystemSetPage);
	AddPage(&m_pUserSetPage);
	m_backcolor=m_RGB_BkColor;
	m_brush.CreateSolidBrush(m_backcolor);
}

CSetSheet::~CSetSheet()
{
}


BEGIN_MESSAGE_MAP(CSetSheet, CPropertySheet)
	ON_BN_CLICKED (ID_APPLY_NOW, OnApply)
	ON_BN_CLICKED (IDHELP, OnHelp)
	ON_WM_CTLCOLOR()
END_MESSAGE_MAP()


// CSetSheet 消息处理程序
void CSetSheet::OnApply ()
{
    GetActivePage ()->UpdateData (TRUE);
	SETALL all;
	all.m_sNewId =m_pUserSetPage.m_sNewId ;
	all.m_sNewName =m_pUserSetPage.m_sNewName ;
	all.m_sNewPw1 =m_pUserSetPage.m_sNewPw1 ;
	all.m_sNewPw2 =m_pUserSetPage.m_sNewPw2 ;
	all.m_sOldPw =m_pUserSetPage.m_sOldPw ;
	all.m_iTerm=m_pSystemSetPage.m_iTerm ;
	all.m_bAutoRun=m_pSystemSetPage.m_bAutoRun ;
	all.m_iRunBell=m_pSystemSetPage.m_iRunBell ;
	all.m_iExitBell =m_pSystemSetPage.m_iExitBell ;
	all.m_sRunbellUserMode =m_pSystemSetPage.m_sRunbellUserMode ;
	all.m_sExitbellUserMode =m_pSystemSetPage.m_sExitbellUserMode ;
	all.m_iSystemStyle =m_pSystemSetPage.m_iSystemStyle ;
	all.m_iTipTime=m_pSystemSetPage.m_iTipTime;
	//如果是用户帐户设置改变
    if(GetActivePage()==&m_pUserSetPage)
	{
		CString OldPw;	
		if(m_pUserSet.IsOpen ())
			m_pUserSet.Close ();
		m_pUserSet.Open ();
		m_pUserSet.MoveFirst ();
		OldPw=m_pUserSet.m_uPassword ;
		m_pUserSet.Close ();//最好现在关闭,待会成功了在连接
		//保存用户帐户信息,关系到保密性,故必须是用户自身才有权利修改
		if(all.m_sOldPw !=OldPw)//旧密码不正确,不可以修改!
		{
			MessageBox(L"旧密码输入不正确,请输入正确的旧密码!",L"错误",MB_ICONSTOP);
			return ;
		}
		//再次要确认两次的新密码是否相同
		if(all.m_sNewPw1 !=all.m_sNewPw2 )
		{
			MessageBox(L"两次密码不相符,请确认密码!",L"错误",MB_ICONSTOP);
			return ;
		}
		if(m_pUserSet.IsOpen ())
			m_pUserSet.Close ();
		m_pUserSet.Open ();
		m_pUserSet.MoveFirst ();
		m_pUserSet.Edit ();
		m_pUserSet.m_uId =all.m_sNewId ;
		m_pUserSet.m_uName =all.m_sNewName ;
		m_pUserSet.m_uPassword =all.m_sNewPw1 ;
		m_pUserSet.Update ();
		m_pUserSet.MoveLast ();
		m_pUserSet.Close ();
	}
	if(GetActivePage()==&m_pSystemSetPage)
	{
		//先登记系统设置的,先保存学期信息
		if(m_pUserSet.IsOpen ())
			m_pUserSet.Close ();
		m_pUserSet.Open ();
		m_pUserSet.MoveFirst ();
		m_pUserSet.Edit ();
		m_pUserSet.m_uTerm =all.m_iTerm ;
		m_pUserSet.m_uRunBell =all.m_sRunbellUserMode ;
		m_pUserSet.m_uExitBell =all.m_sExitbellUserMode ;
		m_pUserSet.Update ();
		m_pUserSet.MoveLast ();
		m_pUserSet.Close ();
		//再通过全局变量保存其他信息
		m_iSystemStyle=all.m_iSystemStyle ;
		m_bAutoRun=all.m_bAutoRun ;
		m_iRunBell=all.m_iRunBell ;
		m_iExitBell=all.m_iExitBell ;
		m_iTerm=all.m_iTerm ;
		m_iTipTime=all.m_iTipTime *5+5;
		
		//下面这一招用的很棒!!!巧妙地实现了重起!!!
		//并且还可以逃过登录对话框!Power的独创!
		if(m_bAutoRun)//通过注册表开机自动运行
		{
			CString sPath;
			GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
			sPath.ReleaseBuffer ();
			SetAutoRun(sPath);
		}
		else//否则删除注册表
		{
			CString sPath;
			GetModuleFileName(NULL,sPath.GetBufferSetLength(MAX_PATH+1),MAX_PATH);
			sPath.ReleaseBuffer ();
			DeleteAutoRun(sPath);
		}
		WinExec(LPCSTR("SMS.exe"),NULL);//启动另一个程序
		//发消息告诉主窗口,要“重起”了,其实只是把它巧妙的关闭
		GetParent ()->SendMessage(WM_USER_REBOOT);//
		PostMessage(WM_CLOSE);//设置对话框自己再关闭
		return ;
	}
	//立即更新!
	Invalidate();
	UpdateWindow();
	m_pUserSetPage.SetModified (false);
	m_pSystemSetPage.SetModified (false);
}

HBRUSH CSetSheet::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH hbr = CPropertySheet::OnCtlColor(pDC, pWnd, nCtlColor);

	// TODO:  在此更改 DC 的任何属性
	if(m_bColor)//如果用系统的,则直接返回
		return hbr;
	pDC->SetTextColor (m_RGB_CtrlColor);
	pDC->SetBkMode(BKMODE_LAST);pDC->SetBkColor (m_RGB_BkColor);
	return (HBRUSH)m_brush.GetSafeHandle ();
	// TODO:  如果默认的不是所需画笔,则返回另一个画笔
//	return hbr;
}

void CSetSheet::HtmlHelp(DWORD_PTR dwData, UINT nCmd)
{
	// TODO: 在此添加专用代码和/或调用基类
	CPropertySheet::HtmlHelp(dwData, nCmd);
}

BOOL CSetSheet::OnInitDialog()
{
	BOOL bResult = CPropertySheet::OnInitDialog();

	// TODO:  在此添加您的专用代码
  //  CWnd   *pWnd   =   GetDlgItem   (IDHELP);   
  //  pWnd->ShowWindow   (FALSE);  
	return bResult;
}

void CSetSheet::WinHelp(DWORD dwData, UINT nCmd)
{
	// TODO: 在此添加专用代码和/或调用基类
//	HWND handle=0;
//	ShellExecuteW(handle, _T("open"), _T("SMS.chm"), NULL, NULL, SW_SHOWNORMAL);
	CPropertySheet::WinHelp(dwData, nCmd);
}
void CSetSheet::OnHelp ()
{
	HWND handle=0;
	ShellExecuteW(handle, _T("open"), _T("SMS.chm"), NULL, NULL, SW_SHOWNORMAL);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -