您的位置:首页 > 其它

MFC-登录框

2016-04-08 21:33 211 查看
有些软件需要登录才能进入到主页面,所以就需要个登录框.登录框需要解决两个难点.第一,对话框窗口需要接受回车消息.第二,当登录成功后弹出主窗口.

1.添加资源–>对话框



2.给登录框添加类



3.在头文件中添加成员变量

//在构造函数初始化为FALSE
BOOL m_bLogIn;


4.在主对话框初始化对话框中打开登录框

//判断是否登录成功
CLogInDlg dlg;
if (dlg.DoModal())//打开登录框
{
//登录失败
if (dlg.m_bLogIn == FALSE)
{
CMFCTESTDlg::OnCancel();//关闭主对话框
return FALSE;
}
}


5.实现登录功能

UpdateData(TRUE);
if (m_username != TEXT("username"))
{
AfxMessageBox(TEXT("用户名错误!"));
m_bLogIn = FALSE;//登录失败
}
else
{
if (m_password != TEXT("password"))
{
AfxMessageBox(TEXT("密码错误!"));
m_bLogIn = FALSE;//登录失败
}
else
{
m_bLogIn = TRUE;//登录成功
CLogInDlg::OnOK();//关闭登录框
}
}


6.实现取消功能

CLogInDlg::OnCancel();


7.重写PreTranslateMessage消息

BOOL CLogInDlg::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN)
{
if (pMsg->wParam == VK_RETURN)
{
OnBnClickedButton1();//如果按回车就调用登录按钮
return 0; //这个一点要加上,不然登陆框就会闪退
}
}

return CDialog::PreTranslateMessage(pMsg);
}


登陆框功能基本完成,还可以判断输入用户名密码的错误次数,达到这个次数就触发什么事件,还可以添加位图背景等等扩展功能。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: