文档类里调用对话框类的函数 有关问题就出来了
文档类里调用对话框类的函数 问题就出来了
一个SDI 新建个对话框 类名是CEPWD
它有一自定义成员函数 BOOL CEPWD::Pwd()
{
UpdateData(true);
或: CString dbpwd;
GetDlgItemText(IDC_EDITDEPWD,dbpwd);
}
注:在类向导里为IDC_EDITDEPWD添加了成员变量
然后在doc类里 BOOL CSafeSlcDoc::CheckDePwd()
{
if (dbpwddlg.DoModal()==IDOK)
{
if(!dbpwddlg.Pwd())
return FALSE;
}
}
注: 之间的调用没问题 两个if里的句子都正确执行到了.
同时在doc类里调用了CheckDePwd() 问题出来了:
在Pwd()里 如果是UpdateData(true); 就提示:试图执行系统不支持操作
在Pwd()里 如果是GetDlgItemText(IDC_EDITDEPWD,dbpwd); dbpwd就为空
请教大家 多谢得非常
------解决方案--------------------
因为DoModal返回以后对话框窗口就销毁了,任何访问窗口的调用都是无效的。其实如果你为IDC_EDITDEPWD添加了类成员变量m_strPwd,直接访问好了:
if (dbpwddlg.DoModal()==IDOK)
{
if (dbpwddlg.m_strPwd.IsEmpty())
return FALSE;
}
一个SDI 新建个对话框 类名是CEPWD
它有一自定义成员函数 BOOL CEPWD::Pwd()
{
UpdateData(true);
或: CString dbpwd;
GetDlgItemText(IDC_EDITDEPWD,dbpwd);
}
注:在类向导里为IDC_EDITDEPWD添加了成员变量
然后在doc类里 BOOL CSafeSlcDoc::CheckDePwd()
{
if (dbpwddlg.DoModal()==IDOK)
{
if(!dbpwddlg.Pwd())
return FALSE;
}
}
注: 之间的调用没问题 两个if里的句子都正确执行到了.
同时在doc类里调用了CheckDePwd() 问题出来了:
在Pwd()里 如果是UpdateData(true); 就提示:试图执行系统不支持操作
在Pwd()里 如果是GetDlgItemText(IDC_EDITDEPWD,dbpwd); dbpwd就为空
请教大家 多谢得非常
------解决方案--------------------
因为DoModal返回以后对话框窗口就销毁了,任何访问窗口的调用都是无效的。其实如果你为IDC_EDITDEPWD添加了类成员变量m_strPwd,直接访问好了:
if (dbpwddlg.DoModal()==IDOK)
{
if (dbpwddlg.m_strPwd.IsEmpty())
return FALSE;
}