这是一个非常简单的任务。我只想从用户那里得到用户名和密码。如果用户名是admin,密码是password,那么点击ok按钮应该调用下一个对话框。如果用户名和密码是其他东西,那么应该出现一个消息框,说无效登录。我的问题是,即使我给用户名作为管理员和密码作为密码,我得到无效的登录消息框。这是我的代码。
void CUserLoginDlg::OnBnClickedOk()
{
CString uname="admin";
CString pwd="password";
if(m_Username== uname|| m_Password==pwd)
{
CDisk Dlg;
Dlg.DoModal();
}
else
{
AfxMessageBox("Invalid Login");
}
}
即使我提供登录凭据作为admin和password,我也会得到Messagebox。我不知道如何解决这个问题。
更正后的版本:
void CUserLoginDlg::OnBnClickedOk()
{
UpdateData(); // updates m_Username and m_Password
CString uname="admin";
CString pwd="password";
if (m_Username == uname && m_Password == pwd)
{ // ^ replaced || by &&
CDisk Dlg;
Dlg.DoModal();
}
else
{
AfxMessageBox("Invalid Login");
}
}
必须在函数开始时调用UpdataData。
你的测试m_Username == uname || m_Password == pwd
是错误的。