CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

请教一个登陆框的问题

楼主xiaoqi206(神奇小猪)2004-12-01 08:55:44 在 VC/MFC / 基础类 提问

我在做登陆框的时候,想在如果输入的密码错误,重新DoModal(),但是我写的代码不知道为什么在第二次循环时就显示错误?   各位大虾帮忙看看。  
   
  CString   user;  
  CPasSet   m_pasSet;  
  CPasDlg   m_pasDlg;  
  m_pasSet.Open();  
  while(sel){  
      if((m_pasDlg.DoModal()   ==   IDOK)   &&   (sel   !=   3)){  
          user   =   m_pasDlg.m_user2;  
          m_pasSet.m_strFilter.Format("users   =   '%s'",user);  
          m_pasSet.Requery();  
          if(m_pasSet.IsEOF()){  
  AfxMessageBox("请选择一个用户登陆");  
  a=0;  
  }  
          if(user   ==   m_pasSet.m_users){  
  if(m_pasDlg.m_password   ==   m_pasSet.m_code){  
        userID   =   m_pasSet.m_ID;  
        sel   =   0;  
        break;  
        }  
  else{  
        AfxMessageBox("密码错误,请重新输入");  
        sel++;  
  }  
            }  
      }  
      else   if(sel   ==   3){  
  AfxMessageBox("密码输入错误3次,程序将自动关闭");  
  exit(-1);  
  }  
      else  
        exit(-1);  
  }  
        m_pasSet.Close(); 问题点数:40、回复次数:12Top

1 楼38062708(土豆精)回复于 2004-12-01 09:00:42 得分 0

第二次出现错误问题出在   ADO   的记录集上吧,你跟踪看看Top

2 楼happyparrot(快乐鹦鹉)回复于 2004-12-01 09:03:19 得分 0

先调整一下代码风格,你的程序难以看清楚括号的对应关系。  
  CString   user;  
  CPasSet   m_pasSet;  
  CPasDlg   m_pasDlg;  
  m_pasSet.Open();  
  while(sel)  
  {  
  if((m_pasDlg.DoModal()   ==   IDOK)   &&   (sel   !=   3))  
  {  
  user   =   m_pasDlg.m_user2;  
  m_pasSet.m_strFilter.Format("users   =   '%s'",user);  
  m_pasSet.Requery();  
  if(m_pasSet.IsEOF())  
  {  
  AfxMessageBox("请选择一个用户登陆");  
  a=0;  
  }  
  if(user   ==   m_pasSet.m_users)  
  {  
  if(m_pasDlg.m_password   ==   m_pasSet.m_code)  
  {  
  userID   =   m_pasSet.m_ID;  
  sel   =   0;  
  break;  
  }  
  else  
  {  
  AfxMessageBox("密码错误,请重新输入");  
  sel++;  
  }  
  }  
  }  
  else   if(sel   ==   3)  
  {  
  AfxMessageBox("密码输入错误3次,程序将自动关闭");  
  exit(-1);  
  }  
  else  
  exit(-1);  
  }  
  m_pasSet.Close();Top

3 楼happyparrot(快乐鹦鹉)回复于 2004-12-01 09:03:52 得分 0

然后有错误你应该自己调试阿。加上断点,看看第二次是哪个语句发生错误。Top

4 楼xiaoqi206(神奇小猪)回复于 2004-12-01 09:05:23 得分 0

为什么我把   if(m_pasDlg.DoModal()   ==   IDOK   &&   sel   !=   3)   里面的内容都注释掉还是会出错的?Top

5 楼happyparrot(快乐鹦鹉)回复于 2004-12-01 09:09:13 得分 0

while(sel){  
      if((m_pasDlg.DoModal()   ==   IDOK)   &&   (sel   !=   3))  
      {  
      }  
  就这样也错?Top

6 楼happyparrot(快乐鹦鹉)回复于 2004-12-01 09:09:44 得分 30

是不是你的m_pasDlg对话框里面用到了什么特殊的操作Top

7 楼xiaoqi206(神奇小猪)回复于 2004-12-01 09:11:38 得分 0

没有啊   ,只加了  
   
  BOOL   CPasDlg::OnInitDialog()  
  {  
  CDialog::OnInitDialog();  
   
  //   TODO:     在此添加额外的初始化  
  m_brush.CreateSolidBrush(RGB(255,255,255));  
  m_pic.SubclassDlgItem(IDC_LOGON,this);  
  CPasSet   m_pasSet;  
  if(!m_pasSet.IsOpen())  
  m_pasSet.Open();  
  while(!m_pasSet.IsEOF()){  
  m_user.AddString(m_pasSet.m_users);  
  m_pasSet.MoveNext();  
  }  
  return   TRUE;     //   return   TRUE   unless   you   set   the   focus   to   a   control  
  //   异常:   OCX   属性页应返回   FALSE  
  }  
   
  HBRUSH   CPasDlg::OnCtlColor(CDC*   pDC,   CWnd*   pWnd,   UINT   nCtlColor)  
  {  
  //HBRUSH   hbr   =   CDialog::OnCtlColor(pDC,   pWnd,   nCtlColor);  
   
  //   TODO:     在此更改   DC   的任何属性  
   
  //   TODO:     如果默认的不是所需画笔,则返回另一个画笔  
  return   m_brush;  
  }Top

8 楼xiaoqi206(神奇小猪)回复于 2004-12-01 09:13:28 得分 0

呵呵,果然是,把这句注释掉就可以了,但是为什么不能用呢?  
  m_brush.CreateSolidBrush(RGB(255,255,255));Top

9 楼960379(文物:眉毛搭桥)回复于 2004-12-01 09:47:52 得分 10

在create之前先将其设为nullTop

10 楼xiaoqi206(神奇小猪)回复于 2004-12-01 10:10:41 得分 0

结贴了   谢谢各位Top

11 楼captainwh(wh)回复于 2004-12-01 10:11:32 得分 0

密码错误了为什么要重新DoModol()   ?   直接不终止对话框就行了啊Top

12 楼loki2k(loki)回复于 2004-12-01 10:15:14 得分 0

m_brush.CreateSolidBrush(RGB(255,255,255));  
  m_brush.CreateSolidBrush(RGB(255,255,255));  
  m_brush.CreateSolidBrush(RGB(255,255,255));  
  你想每次都CreateSolidBrush,这样能行吗?Top

相关问题

  • 如何去掉登陆框
  • 登陆对话框问题!
  • 如何去掉登陆框
  • 嵌入登陆框问题
  • 登陆域时,为什么显示的登陆框是NetBIOS名.
  • 如何去掉密码登陆框?
  • 我写的登陆对话框
  • 如何去掉登陆提示框???
  • 请问如何添加登陆框
  • 请问有关登陆框的问题

关键词

  • 密码
  • passet
  • pasdlg
  • sel
  • cpasdlg
  • createsolidbrush
  • 错误
  • cpasset
  • 登陆
  • afxmessagebox

得分解答快速导航

  • 帖主:xiaoqi206
  • happyparrot
  • 960379

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo