logindlg.cpp

来自「这是一个学生信息管理系统」· C++ 代码 · 共 214 行

CPP
214
字号
// LoginDlg.cpp : 实现文件
//

#include "stdafx.h"
#include "SMS.h"
#include "LoginDlg.h"


// CLoginDlg 对话框

IMPLEMENT_DYNAMIC(CLoginDlg, CDialog)

CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CLoginDlg::IDD, pParent)
	, m_sUserId(_T(""))
	, m_sName(L"")
	, m_sRunBell(L"")
	, m_sExitBell(L"")
	, m_sPassword(_T(""))
	, m_TryCount(0)
	, m_pSet(&theApp.m_db )
{
	//设置系统主题
	RestoreWindowState();
	switch(m_iSystemStyle)
	{
	case 0://系统色红色的回忆蓝色的大海银色的小屋雨后的时光浪漫小屋松果湖底世界春草经典兰黄土
		m_bColor=true;
		break;
	case 1://红色的回忆
		m_bColor=false;
		m_RGB_BkColor=RGB(254,228,235);
		m_RGB_CtrlColor=RGB(0,0,180);
		break;
	case 2://蓝色的大海
		m_bColor=false;
		m_RGB_BkColor=RGB(240,0xff,0xff);
		m_RGB_CtrlColor=RGB(0,0,180);
		break;
	case 3://银色的小屋
		m_bColor=false;
		m_RGB_BkColor=RGB(226,231,238);
		m_RGB_CtrlColor=RGB(48,50,55);
		break;
	case 4://雨后的时光
		m_bColor=false;
		m_RGB_BkColor=RGB(220,213,241);
		m_RGB_CtrlColor=RGB(37,30,55);
		break;
	case 5://浪漫小屋
		m_bColor=false;
		m_RGB_BkColor=RGB(254,220,244);
		m_RGB_CtrlColor=RGB(55,38,8);
		break;
	case 6://松果
		m_bColor=false;
		m_RGB_BkColor=RGB(254,252,252);
		m_RGB_CtrlColor=RGB(55,30,0);
		break;
	case 7://湖底世界
		m_bColor=false;
		m_RGB_BkColor=RGB(237,245,247);
		m_RGB_CtrlColor=RGB(42,52,55);
		break;
	case 8://春草
		m_bColor=false;
		m_RGB_BkColor=RGB(213,238,206);
		m_RGB_CtrlColor=RGB(35,55,30);
		break;
	case 9://经典兰
		m_bColor=false;
		m_RGB_BkColor=RGB(232,239,249);
		m_RGB_CtrlColor=RGB(30,35,55);
		break;
	case 10://黄土
		m_bColor=false;
		m_RGB_BkColor=RGB(254,249,203);
		m_RGB_CtrlColor=RGB(55,30,48);
		break;
	}
	//显示窗口颜色
	m_backcolor=m_RGB_BkColor;
	m_brush.CreateSolidBrush(m_backcolor);
}

CLoginDlg::~CLoginDlg()
{
}

void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_LOGIN_USERID_EDIT, m_sUserId);
	DDV_MaxChars(pDX, m_sUserId, 12);
	DDX_Text(pDX, IDC_LOGIN_PASSWORD_EDIT, m_sPassword);
	DDV_MaxChars(pDX, m_sPassword, 12);
	DDX_Control(pDX, IDC_LOGIN_WELCOME_STATIC, m_cLogin_Welcome);
}


BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)
	ON_BN_CLICKED(IDOK, &CLoginDlg::OnBnClickedOk)
	ON_WM_CREATE()
	ON_WM_CTLCOLOR()
END_MESSAGE_MAP()


// CLoginDlg 消息处理程序

void CLoginDlg::OnBnClickedOk()
{
	// TODO: 在此添加控件通知处理程序代码
	UpdateData(true);
	bool UserFlag=false;                     //标志是否用户
	if(m_TryCount>1)
	{
		MessageBox(L"对不起,你尝试的次数超过三次\n请确认你的使用帐号再使用!",L"错误", MB_ICONSTOP);
		PostMessage(WM_CLOSE);
		return ;
	}
	if(m_sUserId=="")
	{
		MessageBox(L"\n用户帐号不能空,请输出帐号!\n",L"提示",MB_ICONEXCLAMATION);
		return ;
	}
	if(m_sPassword=="")
	{
		MessageBox(L"\n密码不能空,请输出密码!\n",L"提示",MB_ICONEXCLAMATION);
		return ;
	}
	if(m_pSet.IsOpen ())
		m_pSet.Close ();
	m_pSet.Open(AFX_DB_USE_DEFAULT_TYPE,L"Select * From User Order By uId");
	m_pSet.m_strFilter .Empty ();
	if(m_pSet.GetRecordCount ()==0)
	{
		m_pSet.Close ();
		MessageBox(L"\n还没有注册用户!\n",L"错误", MB_ICONSTOP);
		return ;
	}
	m_pSet.MoveFirst ();
	while (!m_pSet.IsEOF ())
	{
		if(m_sUserId==(CString)m_pSet.m_uId &&m_sPassword==(CString)m_pSet.m_uPassword  )
		{
			m_sName=m_pSet.m_uName ;//用户名在这个地方复制,然后在主界面欢迎信息显示
			m_sRunBell=m_pSet.m_uRunBell ;
			m_sExitBell=m_pSet.m_uExitBell ;
			UserFlag=true;
		    OnOK();
		    return ;
		}
		m_pSet.MoveNext ();
	}
	if(m_pSet.IsOpen ())
		m_pSet.Close ();
	if(UserFlag==false)
	{
		m_TryCount++;
		MessageBox(L"对不起,你的用户名和密码不正确\n请再次输入用户名和密码!",L"提示",MB_ICONEXCLAMATION);
		m_sUserId.Empty ();
		m_sPassword.Empty ();
		SetDlgItemText(IDC_LOGIN_USERID_EDIT,m_sUserId);
		SetDlgItemText(IDC_LOGIN_PASSWORD_EDIT,m_sPassword);
	}
}

BOOL CLoginDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// TODO:  在此添加额外的初始化
	LOGFONT lf;
	::ZeroMemory (&lf,sizeof(lf));
	lf.lfHeight =120;
	lf.lfWeight =FW_BOLD;
	::lstrcpy (lf.lfFaceName ,_T("新体-方正超大字符集"));
    m_font_Welcome.CreatePointFontIndirect (&lf);
//    m_font_Welcome_Word.CreatePointFont (200,_T("新体-方正超大字符集"));
	m_cLogin_Welcome.SetFont (&m_font_Welcome);
	return TRUE;  // return TRUE unless you set the focus to a control
	// 异常: OCX 属性页应返回 FALSE
}

int CLoginDlg::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
	if (CDialog::OnCreate(lpCreateStruct) == -1)
		return -1;

	// TODO:  在此添加您专用的创建代码'
	return 0;
}

HBRUSH CLoginDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH hbr = CDialog::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 CLoginDlg::RestoreWindowState ()//软件开始运行的时候获取软件状态
{
	CString version=L"Version 1.0";//软件版本
	m_iSystemStyle=theApp.GetProfileIntW (version,L"SystemStyle",2);//默认为默认1
    m_bAutoRun=theApp.GetProfileIntW (version,L"AutoRun",false);//默认为非自动运行
    m_iRunBell=theApp.GetProfileIntW (version,L"RunBell",0);//默认为没有铃声
	m_iExitBell=theApp.GetProfileIntW (version,L"ExitBell",0);
	m_iTipTime=theApp.GetProfileIntW (version,L"TipTime",0);
}

⌨️ 快捷键说明

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