在主窗口显示前先显示登录窗口

来源:互联网 发布:软件 qa qc 编辑:程序博客网 时间:2024/05/19 12:24

在主窗口显示前先显示登录窗口


通常的应用程序,在主界面显示前要先有一个登录窗口,登录成功后才会显示主界面,下面我们来解决这个问题。


第一步:先利用VS的APP向导建立一个MFC的对话框应用

这一步我们省略了


第二步:我们建立登录窗口

利用向导在工程里加入一个名称叫CLoginDlg的类,这个类继承MFC的CDialog类。

         建立后,打开资源管理器,在里面加入用户名和密码:

       

第三步:在主界面的窗口类的头文件中加入登录窗口的变量

[cpp] view plain copy
print?
  1. public:  
  2.     CLoginDlg m_loginDlg;  
public:    CLoginDlg m_loginDlg;

第四步:在主界面的窗口类中的OnInitDialog方法中加入如下代码:

[cpp] view plain copy
print?
  1. if(m_loginDlg.DoModal() != IDOK)  
  2. {  
  3.     OnOK();  
  4. }  
if(m_loginDlg.DoModal() != IDOK){    OnOK();}

按Ctrl+F5运行,得到我们想要的结果。


在登录框中,我们需要验证用户名和密码,我们删掉原来的确认按钮,加入一个button,写上确认,给它加入点击事件函数


[html] view plain copy
print?
  1. void CLoginDlg::OnBnClickedBt_log()  
  2. {  
  3.     CString name;  
  4.     CString pwd;  
  5.     GetDlgItem(IDC_EDIT_NAME)->GetWindowTextW(name);  
  6.     GetDlgItem(IDC_EDIT_PWD)->GetWindowTextW(pwd);  
  7.     if(name.Compare(_T(“qin”)))  
  8.     {  
  9.         MessageBox(_T(“用户名不对”),_T(“提示”));  
  10.     }  
  11.     else  
  12.     {  
  13.         OnOK();  
  14.     }  
  15. }  
void CLoginDlg::OnBnClickedBt_log(){    CString name;    CString pwd;    GetDlgItem(IDC_EDIT_NAME)->GetWindowTextW(name);    GetDlgItem(IDC_EDIT_PWD)->GetWindowTextW(pwd);    if(name.Compare(_T("qin")))    {        MessageBox(_T("用户名不对"),_T("提示"));    }    else    {        OnOK();    }}






1 0
原创粉丝点击