在登录界面中,
当点击“登录”按钮时,
程序里是如何与数据库连接并验证用户名与密码的正确性的呢?
刚开始怎样隐藏主界面?
在登录进去以后又是如何显示主界面的啊?
请高手给点指导,谢啦!
呵呵……

解决方案 »

  1.   

    用一个线程来做实际的登录操作, 如果不用线程, 可用PeekMessage
      

  2.   

    刚开始怎样隐藏主界面?
    在登录进去以后又是如何显示主界面的啊?
    ----------------------------------------------很简单啊:在WinMain调用ShowWindow前显示一个对话框,失败直接退出就行了。
      

  3.   

    我今天也有一个这样的我问题
    在***Dlg.cpp中设一个文字常量为密码, 然后跟编辑框的输入相比较判断,如果为真就进入主界面但是如何显示主界面我也卡在这里了  高手给个方法吧
      

  4.   


    Login checnk;
    if(IDCANCEL==checnk.DoModal())
      return FALSE;
    else if(!checnk.check)
     return FALSE;
      

  5.   

    晕,这个还不简单?新建一个对话框,比如 dialog_login
    在你主界面的OnInitDialog() 函数中加入这个代码就可以了//dialog_login dialog_01;dialog_01.DoModal();在 dialog_01 中进行登陆判断,要是登陆不成功,就一个劲地出MessabaBox啥时候成功啥时候退出dialog_01,
    这个时候主界面就现实出来了。
      

  6.   

    楼上说的都没错.
    也可以在OnNewDocument里显示登陆对话框,核对数据库中的加密密码.这个时候主程序窗口是不会显示出来的.当你想退出程序时返回false就可以了,如果密码正确return true主程序就继续运行,主窗口就出来了
      

  7.   

    在验证的时候出现一个问题,
    假如用户名与密码两者当中有一个错误,
    然后再点击"退出系统"按钮的时候就会报错,
    啥原因呢?
    "退出系统"按钮用的是exit(0);来退出程序的
      

  8.   

    如果你的文档视图结构的话,可以在InitInstance增加
    CLoginDlg dlg;
    dlg.DoModal();如果你希望在主界面显示前显示登陆对话框,可以把上两个语句加在AddDocTemplate前,如果你希望显示主界面后显示登陆对话框,可以加在ShowWindow后,以下两个函数是登陆与取消按钮的响应函数
    void CLoginDlg::OnBtnExit() 
    {
    // TODO: Add your control notification handler code here
    AfxGetMainWnd()->PostMessage(WM_CLOSE,0,0);
    }void CLoginDlg::OnBtnLogin() 
    {
    // TODO: Add your control notification handler code here UpdateData();
    if(m_Password.IsEmpty()||m_Username.IsEmpty())
    AfxMessageBox("用户名或密码不能为空!");
    else
    {
    int UserTotal=GLobalVariable.AuthorityArray.GetSize();
    for(int i=0;i<UserTotal;i++)
    {
    USERPSDAUTHORITY UserPsdPower=GetUserPsdProprietor(GLobalVariable.AuthorityArray.GetAt(i));
    if(UserPsdPower.UserName==m_Username)
    {
    //保存权限值在全局变量UserAuthority以备其他函数使用
    GLobalVariable.UserAuthority=UserPsdPower.Power; if(m_Password!=UserPsdPower.Pass)
    {
    AfxMessageBox("密码输入错误!"); 
    m_Password.Empty();
    UpdateData(FALSE);
    }
    else
    {
    PostMessage(WM_CLOSE,0,0);
    CMainFrame* pMain=(CMainFrame*)AfxGetMainWnd();
    pMain->ReviewUserBool=TRUE;
    pMain->AddUserBool=TRUE;
    pMain->DelUserBool=TRUE; // EndDialog(1); }
    break;

    }
    }

    }
    }