MFC中 给基于对话框的应用程序添加登陆界面

给基于对话框的应用程序添加登陆界面,也就是增加一个新的对话框。

在一般的基于对话框的应用程序的CXXXApp.cpp中都会有:

CXXXDlg dlg;              //程序的主对话框

 m_pMainWnd = &dlg;         //设置为主对话框,也就是所主对话框的结束也就意味着程序的结束

 INT_PTR nResponse = dlg.DoModal();  //弹出主对话框

 if (nResponse == IDOK)  //根据对话框的返回值设置要执行的操作

 {...  }  

else if (nResponse == IDCANCEL)

 {...  }

现在就来开始添加登陆界面:

1、先建好新的登陆对话框类CLoginDlg(MFC类,基于CDialog的),生成.cpp和.h文件。

2、在资源视图里绘制好登陆界面的内容:可以输入用户名和密码的编辑框,登入和退出按钮。

3、利用类向导给用户名和密码的两个编辑框分别关联变量:

               m_InUser ,m_InPassword。

4、在给登陆按钮添加消息响应函数OnBnClickedOk(),并添加代码如下:

void CLoginDlg::OnBnClickedOk()
{
    // TODO: 在此添加控件通知处理程序代码
    CDialog::OnOK();

    //获取用户名和密码
    m_InUser.GetWindowText(m_InLoginname);
m_InPassword.GetWindowText(m_Password);
//判断用户名和密码 if((m_Loginname == "")||(m_Password == "")) { AfxMessageBox(L"请输入用户名和密码!"); } else if(m_Loginname == L"lxt" && m_Password == L"123") { m_SuccessLogin = true; this->EndDialog(1); } else { AfxMessageBox(L"错误的帐号或密码,请重新输入!"); return; } }

5、给突出按钮添加消息响应函数OnBnClickedCancel():

void CLoginDlg::OnBnClickedCancel()
{
    // TODO: 在此添加控件通知处理程序代码
    CDialog::OnCancel();
    m_bCancle = true;
}

6、在LoginDlg.h里声明:

 BOOL m_bCancle;
 BOOL m_SuccessLogin;

7、在LoginDlg.cpp里初始化:

  m_bCancle = false;
  m_SuccessLogin = false;

8、在CXXXApp.cpp中,将最上边的代码替换成:

p:
    CLoginDlg dlg_login;    //建立登陆对话框对象
    dlg_login.DoModal();   //弹出登陆对话框

    if(dlg_login.m_SuccessLogin)
    {
        CXXXDlg dlg; //建立主应用程序对话框对象
        m_pMainWnd = &dlg;           //设置dlg为主对话框
        INT_PTR nResponse = dlg.DoModal();    //弹出主对话框
        if (nResponse == IDOK)   //根据主对话框返回值选择操作
        {
            // TODO: 在此处放置处理何时用“确定”来关闭
            //  对话框的代码
        }
        else if (nResponse == IDCANCEL)
        {
            // TODO: 在此放置处理何时用“取消”来关闭
            //  对话框的代码
        }
    }
    else
    {
        if(!dlg_login.m_bCancle)
        {
            goto p;
        }
        delete(m_pMainWnd);
        m_pMainWnd = NULL;
        return FALSE; 
    }

 

 大功告成~~~ ^_^

 

转载于:https://www.cnblogs.com/lxt287994374/archive/2013/05/30/3108779.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值