大牛们,有更好的思路吗?解决办法
大牛们,有更好的思路吗?
一个对话框上有两个文本框
都是输入密码的
当下面那个文本框在失去焦点的时候就去判断 输入的值是否和上面那个文本框的值 是否相同??
大家注册过邮箱把?就是邮箱密码那种效果。。。。。。。。。
感觉要用到文本框的OnKillFoucus函数。。。。
可是我如果 第二个文本框 override OnKillFoucus,如何得知第一个文本框的值呢??
我的思路是: CMyEdit提供两个接口,void SetNext(CMyEdit* p=NULL); CMyEdit* GetPre() const;
第一个文本框调用接口SetNext(this)后, 然后
void CMyEdit::OnKillFoucus()
{
if( NULL!=GetPre()) //有前驱文本框
{
CString str=GetPre->GetWindowText();
CString str2=GetWindowText();
if(str!=str2)
{
AfxMessageBox(_T("密码不一致"));
SetFocuts();
}
}
}
有比这个法子 更好更规范的方法吗??
我这个法子,感觉不好啊。。。。
有代码更好,谢谢了啊
------解决方案--------------------
响应EN_CHANG消息,当第二个文本框的字符数与第一个文本框的字符数相同时,对第一、二个文本框中的字符串进行比较,然后给出相应的提示。。。
一个对话框上有两个文本框
都是输入密码的
当下面那个文本框在失去焦点的时候就去判断 输入的值是否和上面那个文本框的值 是否相同??
大家注册过邮箱把?就是邮箱密码那种效果。。。。。。。。。
感觉要用到文本框的OnKillFoucus函数。。。。
可是我如果 第二个文本框 override OnKillFoucus,如何得知第一个文本框的值呢??
我的思路是: CMyEdit提供两个接口,void SetNext(CMyEdit* p=NULL); CMyEdit* GetPre() const;
第一个文本框调用接口SetNext(this)后, 然后
void CMyEdit::OnKillFoucus()
{
if( NULL!=GetPre()) //有前驱文本框
{
CString str=GetPre->GetWindowText();
CString str2=GetWindowText();
if(str!=str2)
{
AfxMessageBox(_T("密码不一致"));
SetFocuts();
}
}
}
有比这个法子 更好更规范的方法吗??
我这个法子,感觉不好啊。。。。
有代码更好,谢谢了啊
------解决方案--------------------
响应EN_CHANG消息,当第二个文本框的字符数与第一个文本框的字符数相同时,对第一、二个文本框中的字符串进行比较,然后给出相应的提示。。。