MFC基于单文本和对话框的登陆界面实现

一、添加 基于单文本的登录对话框.

 

1.建立一个单文本的MFC程序.

2.添加一个对话框.然后添加一个CLoginDialog类public继承CDialog.

  此时也会增加两个文件<LoginDialog.h LoginDialog.cpp>

  接着添加控件(用户名:登录密码:确定/取消)

 

  添加变量(CString m_strUserName;CString m_strUserPwd;)

 

  直接添加变量:在LoginDialog.h中 BOOL m_bCancle; 

  并在LoginDialog.cpp初始化函数中添加m_bCancle = false;

 

  添加按钮确定和取消两个函数.

  并在取消函数中添加m_bCancle = true;

 

 

+++++++++++++++++++++++

 

3.在 "工程名".h 文件中添加一个 public 的 布尔型变量 BOOL m_bSuccessLogin;//用了识别登录名和密码一致否;

 

4.在 "工程名"View.cpp 文件中添加 C"工程名"App* pApp = (C"工程名"App*) AfxGetApp();

 

5."工程名"View.cpp 文件中添加初始化函数OnInitialUpdate()

/////////////////////////////

并在"工程名"View.h中声明变量

CLoginDialog  logindlg;

/////////////////////////////

  并添加如下代码:

 

   CView::OnInitialUpdate();

 

         // TODO: 在此添加专用代码和/或调用基类

   p:

         logindlg.m_strUserName = _T("");

         logindlg.m_strUserPwd = _T("");

         logindlg.DoModal();

   

         if ((logindlg.m_strUserName=="aa")&&(logindlg.m_strUserPwd=="bb"))

         {

             pApp->m_bSuccessLogin = true;

         }

         else

         {

                     if (!logindlg.m_bCancle)

                   {

                      AfxMessageBox(L"错误的帐号或密码!");

                      goto p;

                   }

                  

         }

 

6.修改 LoginTest类中的函数BOOL C"工程名"App::InitInstance()如下所示:

   将

        // 唯一的一个窗口已初始化,因此显示它并对其进行更新

         m_pMainWnd->ShowWindow(SW_SHOW);

         m_pMainWnd->UpdateWindow();

         // 仅当具有后缀时才调用 DragAcceptFiles

         //  在 SDI 应用程序中,这应在 ProcessShellCommand 之后发生

         return TRUE;

 

   替换为:

       // 唯一的一个窗口已初始化,因此显示它并对其进行更新

         if (m_bSuccessLogin)

         {

         m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);

         m_pMainWnd->UpdateWindow();

         // 仅当存在后缀时才调用 DragAcceptFiles,

         //  在 SDI 应用程序中,这应在 ProcessShellCommand  之后发生

         return TRUE;

         }

         else

         {

                   delete(m_pMainWnd);

                   m_pMainWnd = NULL;

                   return FALSE;

         }

 

 

 

最后不要忘了添加一些头文件.

 

a. 在"工程名"View.cpp中添加

   #include "LoginDialog.h"

 

b. 在"工程名"View.h中添加

   #include "LoginDialog.h"

 

二、添加基于对话框的 登录界面

 

记得添加登录界面的两个变量:Loginname  Password

 

手动直接添加 BOOL m_bCancle;

 

并在LoginDialog.cpp初始化函数中添加m_bCancle = false;

 

  添加按钮确定和取消两个函数.

  并在取消函数中添加m_bCancle = true;

 

 

 

在CLoginDialog类中添加两个函数:Setloginname()  Setpassword()

 

CString& CLoginDialog::Setloginname(void)

{

         //TODO: insert return statement here

         return Loginname;

}

 

CString& CLoginDialog::Setpassword(void)

{

         //TODO: insert return statement here

         return Password;

}

 

 

 

 

在"基于对话框_登录界面".cpp 文件中的函数   BOOL C基于对话框_登录界面App::InitInstance()里面

 

p:

         CLoginDialog logindlg;

 

         logindlg.DoModal();

 

        

         if(logindlg.Setloginname()==L"gwb"&&logindlg.Setpassword()==L"157"){

                  

                   m_bSuccessLogin=true;

         }  

 

         else{

 

                   if(!logindlg.m_bCancle){

 

                            AfxMessageBox(L"错误的帐号或密码!");

 

                            goto p;

                   }

 

         }

 

         if (m_bSuccessLogin){

 

 

         C基于对话框_登录界面Dlg dlg;

         m_pMainWnd = &dlg;

         INT_PTR nResponse = dlg.DoModal();

         if (nResponse == IDOK)

         {

                   // TODO: 在此放置处理何时用

                   //  “确定”来关闭对话框的代码

         }

         else if (nResponse == IDCANCEL)

         {

                   // TODO: 在此放置处理何时用

                   //  “取消”来关闭对话框的代码

         }

         }

 

         else{

                   delete(m_pMainWnd);

                   m_pMainWnd = NULL;

                   return FALSE;

         }

 

 

另外注意添加头文件喔.在"基于对话框_登录界面".cpp   #include "LoginDialog.h"

 

还有变量声明喔.在在"基于对话框_登录界面".h   BOOL m_bSuccessLogin;

 

 

posted @ 2012-11-16 18:11  i Traveling Light  阅读(389)  评论(0)    收藏  举报