求助:弹出对话框的问题
设计一个软件,想在进入软件之前设计一个登陆对话框
CRegisterDlg 是弹出对话框的类
ADOTEST 是程序名
在执行过程中,要退出登陆框必须点2次才行,并且第二次是因为错误才退出。
//
BOOL CADOTESTApp::InitInstance()
{
AfxEnableControlContainer();
CRegisterDlg Register;
for( ; ; )
{
if(Register.DoModal()==IDOK)
{
if(lstrcmp(Register.m_Password,"1")||lstrcmp(Register.m_Name,"1") )
{
AfxMessageBox("你输入的用户名和密码不正确!");
continue;
}
break;
}
else if(Register.DoModal()==IDCANCEL)
return FALSE;
}
问题点数:0、回复次数:7Top
1 楼wjjssnew(暗恋一个叫张文玲的女孩)回复于 2005-02-04 20:27:46 得分 0
Register.DoModal()
用个中间变量 保存他的返回值再判断~试试Top
2 楼kugou123(酷狗)(彪悍的人生,不需要解释 www.xiaozhou.net)回复于 2005-02-04 20:33:50 得分 0
感觉是你的无限循环有问题,先不用for循环试试Top
3 楼yujia120(永不停息)回复于 2005-02-04 20:36:04 得分 0
你把DOMADAL()放在FOR里干什么
对话框已经有消息循环了呀?Top
4 楼yujia120(永不停息)回复于 2005-02-04 20:37:53 得分 0
密码不对的话,你不应该用for来自己处理
应该编写对话框类的onok按扭事件Top
5 楼chtfyy()回复于 2005-02-04 22:15:28 得分 0
yujia120(于佳):在ONOK中添加了代码可以实现了,谢谢!
现在就是OnCancel事件怎么处理。
点了Cancel后,只是退出了登陆框,直接进入界面了,
写些什么代码可以退出整个程序。
另外问一个问题,一个按钮事件执行到中途不想继续执行后面的代码了,用什么语句
我现在的处理是做一个1次循环,用if+continue来实现Top
6 楼fengqinggao(风清高)回复于 2005-02-04 22:51:40 得分 0
OnCancel语句不用写,如果你在OnOk中处理好了,直接用语句:
if(Register.DoModal() == IDCANCEL)
return FALSE;
代替你上面的for循环语句即可。
另:要中途中断执行,直接return即可Top
7 楼koko1998(高价购买火车票)回复于 2005-02-05 10:35:10 得分 0
你干麻Register.DoModal()那么多次啊。
肯定的出错。
Top




