我做了一个登陆模块,想在登陆成功后用模态对话框的方式打开主界面,但是总是出错,用非模态对话框的方式就可以,这是为什么?而且在用非模态对话框的方式打开之后,在主界面中再用同样的方式打开子界面就会出错,这又是为什么?
void CLoginDlg::OnLogin()
{
UpdateData(TRUE);
CDatabase m_db;
CUserSet m_UserSet;
m_db.Open(NULL,FALSE,FALSE,"ODBC;DSN=SC;UID=sa;PWD="); try
{
if(m_UserSet.IsOpen())
m_UserSet.Close();
m_UserSet.m_strFilter.Format("UserID='%s' and PassWord='%s'",m_sUserID,m_sPassWord);;
m_UserSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
if(m_UserSet.IsEOF())
{
m_UserSet.Close();
MessageBox("不存在该用户或密码不正确");
return;
}
else
{
m_UserSet.Close();
// MessageBox("登陆成功");
CMainDlg* pDlg;
// pDlg= new CMainDlg() ;
// pDlg->Create(IDD_MAIN_DLG,this);
pDlg->DoModal();
}
} catch(CDBException *e)
{
e->ReportError();
return;
}
}
void CLoginDlg::OnLogin()
{
UpdateData(TRUE);
CDatabase m_db;
CUserSet m_UserSet;
m_db.Open(NULL,FALSE,FALSE,"ODBC;DSN=SC;UID=sa;PWD="); try
{
if(m_UserSet.IsOpen())
m_UserSet.Close();
m_UserSet.m_strFilter.Format("UserID='%s' and PassWord='%s'",m_sUserID,m_sPassWord);;
m_UserSet.Open(CRecordset::snapshot,NULL,CRecordset::none);
if(m_UserSet.IsEOF())
{
m_UserSet.Close();
MessageBox("不存在该用户或密码不正确");
return;
}
else
{
m_UserSet.Close();
// MessageBox("登陆成功");
CMainDlg* pDlg;
// pDlg= new CMainDlg() ;
// pDlg->Create(IDD_MAIN_DLG,this);
pDlg->DoModal();
}
} catch(CDBException *e)
{
e->ReportError();
return;
}
}
解决方案 »
- 请教分属两个局域网的机子怎么实现TCP通信?
- 使用glutSwapBuffers()程序不能start debugging
- Invalid directory(win 32 Error 267)是什么错误啊?
- 为什么在创建窗口时要注册窗口?还有创建那些东东时也要注册?
- 打印的奇怪的问题
- 请问operator 是不是运算符的意思?
- 欢迎大家来看看这个软件,题些宝贵意见!
- 搞过摄像头的大虾请问:获取摄像头WebCam拍摄图像中的一帧该用什么函数?
- 我火了,谁告书诉我这么解决150。
- 关于windows各个系统的登录(gina)问题
- 怎么取出记录集的数据呢?怎么保存???我下面做法有什么问题???
- Edit控件内容保存到ini文件的问题
// pDlg= new CMainDlg() ;
// pDlg->Create(IDD_MAIN_DLG,this);
pDlg->DoModal(); 这个是局部变量,函数执行完就析构掉了,把CMainDlg* pDlg; 设成成员变量或全局变量
楼主应该发挥每个工具的长处啦,而不是一味的强调VC的强大,很多时候VC也有短处的。
VC的开发领域越来越窄了,不过原来的一些传统领域还是无可替代的