Input为一个类,
m_strmean,m_strword为文本框
为什么添加后,老是弹出word为空!
如何避免这种情况!
void Input::OnOK()
{
do
{ CString word,mean;
m_strmean.GetWindowText(mean);
m_strword.GetWindowText(word);
word.TrimLeft();
word.TrimRight();
mean.TrimLeft();
mean.TrimRight(); if(mean=="")
{ MessageBox("Word 不能为空!");
m_strmean.SetFocus();
break;
}
if(word=="")
{
MessageBox("word 不能为空!");
m_strword.SetFocus();
break;
} /*中间为数据添加*/
}while(MessageBox("你还想添加记录","询问",MB_YESNO)==IDYES);
}
m_strmean,m_strword为文本框
为什么添加后,老是弹出word为空!
如何避免这种情况!
void Input::OnOK()
{
do
{ CString word,mean;
m_strmean.GetWindowText(mean);
m_strword.GetWindowText(word);
word.TrimLeft();
word.TrimRight();
mean.TrimLeft();
mean.TrimRight(); if(mean=="")
{ MessageBox("Word 不能为空!");
m_strmean.SetFocus();
break;
}
if(word=="")
{
MessageBox("word 不能为空!");
m_strword.SetFocus();
break;
} /*中间为数据添加*/
}while(MessageBox("你还想添加记录","询问",MB_YESNO)==IDYES);
}
UpdateData(TRUE);
下一次输入到文本框的内容。
void CInput::OnOK()
{
UpdateData(); // DDX
if输入合法 {
加入记录
if继续添加 {
return; // 需要下一次的输入
}
}
... // 清理工作
}
m_strmean.GetWindowText(mean);
m_strword.GetWindowText(word);//m_strword,m_strmean这两个是控件类变量吧.可以这样取数.不一定非得通过DDX.但你把取数放在循环中就不知何意了.
m_strmean,m_strword,这样命名Edit控件,会把自己搞糊涂的你确定你的m_strmean,m_strword两个控件是对应你编辑数据的两个Edit控件?
能犯这种错误?I服了you
估计你犯了低级错误!
void Input::OnOK() //点击OK按钮
{
UpdateData(); // 用控件中输入的值更新m_strmean, m_strword if (m_strword == TEXT("")) // 输入的单词为空
MessageBox("Word 不能为空!");
else if (m_strmean == TEXT("")) // 输入的释义为空
MessageBox("Mean 不能为空!");
else {
... // 加入新单词条目
if (MessageBox("你还想添加记录","询问",MB_YESNO)==IDNO)
CDialog::OnOK(); // 关闭对话框
}
}
Class CDlgInput :public CDialog