
VC2005问题。
本人用VC2005编写了一个修改密码的小程序,但是不知道为什么在修改密码时只要你把用户名,旧密码和新密码全部输入完后按确定按钮时它就什么反应都没有,但是在你没有把那几项输...
本人用VC2005编写了一个修改密码的小程序,但是不知道为什么在修改密码时只要你把用户名,旧密码和新密码全部输入完后按确定按钮时它就什么反应都没有,但是在你没有把那几项输入完成时,按确定按钮它就会出现提示。?
请问这是什么原因造成的?具体解决方法是什么?
我试了一下还是不行。。= = 展开
请问这是什么原因造成的?具体解决方法是什么?
我试了一下还是不行。。= = 展开
4个回答
展开全部
应该是那个确定按钮的响应函数,例如OnOK里在提示代码之前已经return了,根据你的情况,最有可能的是你判断数据是否为空的地方逻辑反了,例如下面:
void CTestDlg::OnOK()
{
if ( m_username.IsEmpty() && m_password.IsEmpty() ) //你仔细检查这里,是不是有类似这样的错误
return;
AfxMessageBox("这里是提示信息!");
}
CString::IsEmpty()函数如果对象为空,返回TRUE,否则返回FALSE。
改为
if ( m_username.IsEmpty() || m_password.IsEmpty() )
return;
===补充===
上你的这个函数代码,我替你看看
void CTestDlg::OnOK()
{
if ( m_username.IsEmpty() && m_password.IsEmpty() ) //你仔细检查这里,是不是有类似这样的错误
return;
AfxMessageBox("这里是提示信息!");
}
CString::IsEmpty()函数如果对象为空,返回TRUE,否则返回FALSE。
改为
if ( m_username.IsEmpty() || m_password.IsEmpty() )
return;
===补充===
上你的这个函数代码,我替你看看

2023-06-12 广告
STM32F4是由ST(意法半导体)开发的一种高性能微控制器系列。其采用了90nm的NVM工艺和ART技术(自适应实时存储加速器,Adaptive Real-Time MemoryAccelerator)。STM32F4是一款基于ARM C...
点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
展开全部
肯定是,你点击确定的时候,验证控件值输入的有效性,如果没有通过验证你要return掉,如果全部通过验证你要往下走!这种情况,你直接跟踪程序就可以了,一下就能定位到原因.
if(!验证有效性方法) 验证方法返回bool 通过返回true
return;
if(!验证有效性方法) 验证方法返回bool 通过返回true
return;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
强烈推荐2005.
它调试很方便,对于写代码的,如果不会调试,基本就费了一半,6.0的调试让人想杀人。
而且2005用的是更新的stl库,更加安全,比如有vector的越界检查。
微软的东西,会一代淘汰一代,你既然是初学,为什么不直接学最好的呢?
另外,
#include <iostream>
using namespace std;
这个是在一开始就声明,要用标准模板库,编译器在编译的时候就会去stl库里找,而
std::cout<<"Hello World!\n"; 这个是用到的地方才告诉编译器,你用的是标准模板库的东西。
它调试很方便,对于写代码的,如果不会调试,基本就费了一半,6.0的调试让人想杀人。
而且2005用的是更新的stl库,更加安全,比如有vector的越界检查。
微软的东西,会一代淘汰一代,你既然是初学,为什么不直接学最好的呢?
另外,
#include <iostream>
using namespace std;
这个是在一开始就声明,要用标准模板库,编译器在编译的时候就会去stl库里找,而
std::cout<<"Hello World!\n"; 这个是用到的地方才告诉编译器,你用的是标准模板库的东西。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
强烈推荐2005.
它调试很方便,对于写代码的,如果不会调试,基本就费了一半,6.0的调试让人想杀人。
而且2005用的是更新的stl库,更加安全,比如有vector的越界检查。
微软的东西,会一代淘汰一代,你既然是初学,为什么不直接学最好的呢?
另外,
#include <iostream>
using namespace std;
这个是在一开始就声明,要用标准模板库,编译器在编译的时候就会去stl库里找,而
std::cout<<"Hello World!\n"; 这个是用到的地方才告诉编译器,你用的是标准模板库的东西。
它调试很方便,对于写代码的,如果不会调试,基本就费了一半,6.0的调试让人想杀人。
而且2005用的是更新的stl库,更加安全,比如有vector的越界检查。
微软的东西,会一代淘汰一代,你既然是初学,为什么不直接学最好的呢?
另外,
#include <iostream>
using namespace std;
这个是在一开始就声明,要用标准模板库,编译器在编译的时候就会去stl库里找,而
std::cout<<"Hello World!\n"; 这个是用到的地方才告诉编译器,你用的是标准模板库的东西。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询