MFC-登录框

来源:互联网 发布:天敏网络电视机顶盒 编辑:程序博客网 时间:2024/04/27 18:44

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

1.添加资源–>对话框

2.给登录框添加类

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

//在构造函数初始化为FALSEBOOL 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);}

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

0 0
原创粉丝点击