MFC-登录框

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

1.添加资源–>对话框

2.给登录框添加类
MFC-登录框_第1张图片

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);
}

登陆框功能基本完成,还可以判断输入用户名密码的错误次数,达到这个次数就触发什么事件,还可以添加位图背景等等扩展功能。

你可能感兴趣的:(mfc,对话框,登陆框,编辑框接收回车消息)