这是一个按钮的函数,我想验证密码333,但是我输入什么数字得到的结果都是输入有误,m_nSN是编辑框的变量,为CString类型
void CwdoosDialog::OnTest() 
{
// TODO: Add your control notification handler code here
CwdoosDialog dlg;
Cwdoos1Dialog dlg1;
UpdateData(TRUE);
if(strcmp(dlg.m_nSN,"333")==0)
{
AfxMessageBox("您输入的密码有误,请重新输入^=^",MB_YESNO);
}
else
{
DestroyWindow();
dlg1.DoModal();
}
}

解决方案 »

  1.   


    void CwdoosDialog::OnTest()  

    // TODO: Add your control notification handler code here Cwdoos1Dialog dlg1; 
    UpdateData(TRUE); 
    if(strcmp(m_nSN,"333")==0) 

    AfxMessageBox("您输入的密码有误,请重新输入^=^",MB_YESNO); 

    else 

    OnOK(); 
    dlg1.DoModal(); 

      

  2.   

    CwdoosDialog dlg;
    你这又新建了一个对象,你原来输入密码的对象不是这个对象,所以每次都出错
      

  3.   

    strcmp比较的结果,为0表示两个字符串相同。而且对于CString,可以直接用==:
    if (m_nSN == _T("333"))
       相同
    else
       不同
    至于Cwdoos1Dialog dlg1; 和dlg1.DoModal(); 删除即可。没听说自己对话框还要显示自己的,不调用OnOK()不就可以了。