我编了一个验证密码的输入对话框,但是输入的用户名和密码正确,它也会报验证失败.我发现是edit box中的内容不能和转换到它的变量上,转换代码具体如下:(请高手帮我解决一下,请把改正后的代码发到我邮箱talent3808@163.com,谢谢)
void CLoginDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX); //处理MFC默认的数据交换
//下面的代码处理控件与控件变量之间的数据交换,一般由MFC自动添加
//{{AFX_DATA_MAP(CLoginDialog)
//处理控件IDC_LOGINNAME和变量m_szLoginName之间的数据交换
//DDX_Text表明是进行文本数据交换
DDX_Text(pDX, IDC_LOGINNAME, m_szLoginName);
// m_szLoginName="user";
//处理控件IDC_PASSWORD和变量m_szPassword之间的数据交换
DDX_Text(pDX, IDC_PASSWORD, m_szPassword);
// m_szPassword="test1234";
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CLoginDialog, CDialog)
//{{AFX_MSG_MAP(CLoginDialog)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CLoginDialog message handlers
void CLoginDialog::OnOK()
{
// TODO: Add extra validation here
//以下添加用户名和密码的验证过程
//注意,在对话框的OnOK函数中自动调用CDialog::UpdateData(TRUE),
//即自动更新控件变量的值
UpdateData();
//本例为简单起见,合法的用户名只能是user,对应密码为test1234
if (m_szLoginName == "user" && m_szPassword == "test1234")
{
//验证通过,并提示用户
//MessageBox是Windows系统的消息对话框,用于提示简单的消息,
//具体内容可以参考本章的最后一节
MessageBox("用户验证通过", "登录提示",MB_OK);
}
else
{
//验证不通过
//提示用户
MessageBox("用户验证失败", "登录提示",MB_OK);
//退出主程序
AfxGetMainWnd()->PostMessage(WM_QUIT);
//返回登录失败
//EndDialog退出对话框,参数表示对话框的返回值,本例
//用"取消"按钮的ID作为验证失败返回值
// EndDialog(IDCANCEL);
}
//默认的消息处理函数,用于退出对话框,返回值为IDOK
CDialog::OnOK();
}
void CLoginDialog::OnCancel()
{
// TODO: Add extra cleanup here
//验证不通过
//提示用户
MessageBox("用户验证失败", "登录提示",MB_OK);
//退出主程序
AfxGetMainWnd()->PostMessage(WM_QUIT);
//默认的消息处理函数,用于退出对话框,返回值为IDCANCEL,
//同本例的OnOK验证失败的返回值
CDialog::OnCancel();
}