MFC,VC,关闭对话框时出错,对话框关闭后又弹出一个新的,为什么?
点了确定,正常关闭,弹出messagebox;点了取消,就又会弹出一个新的同样的对话框。。。为什么?哪错了?求指点,多谢!附上一小段代码://2012年9月5日添菜单响应...
点了确定,正常关闭,弹出messagebox;点了取消,就又会弹出一个新的同样的对话框。。。为什么?哪错了?求指点,多谢!
附上一小段代码:
//2012年9月5日添 菜单响应
NEW_USER dlg;
dlg.DoModal();
CString str_time;
CTime mytime = CTime::GetCurrentTime();
str_time = mytime.Format("%Y-%m-%d");
CStringstr = "姓名:" + dlg.m_editName +
"\n年龄:" + dlg.m_editAge
+ "\n性别:" + dlg.m_editGender
+ "\n诊号:" + dlg.m_editClinicID
+ "\n建档时间:" + str_time
+ "\n";
if(dlg.DoModal() == IDOK)
MessageBox(str);
// if(dlg.DoModal() == IDCANCEL)
// return ;
按确定也是会反复弹出两次才结束
我还想顺带问一下,要怎么关闭这个对话框呢?
我用dlg.OnOk()或者CDialog.OnOk(),都提示我不可以用:cannot access protected member declared in class 'CDialog'
求教。。。。 展开
附上一小段代码:
//2012年9月5日添 菜单响应
NEW_USER dlg;
dlg.DoModal();
CString str_time;
CTime mytime = CTime::GetCurrentTime();
str_time = mytime.Format("%Y-%m-%d");
CStringstr = "姓名:" + dlg.m_editName +
"\n年龄:" + dlg.m_editAge
+ "\n性别:" + dlg.m_editGender
+ "\n诊号:" + dlg.m_editClinicID
+ "\n建档时间:" + str_time
+ "\n";
if(dlg.DoModal() == IDOK)
MessageBox(str);
// if(dlg.DoModal() == IDCANCEL)
// return ;
按确定也是会反复弹出两次才结束
我还想顺带问一下,要怎么关闭这个对话框呢?
我用dlg.OnOk()或者CDialog.OnOk(),都提示我不可以用:cannot access protected member declared in class 'CDialog'
求教。。。。 展开
4个回答
展开全部
这是个模态对话框,你执行了两次对话框的打开,所以才弹出两次 ,分别在程序的第二行和第十二行
可以改成
NEW_USER dlg;
if(dlg.DoModal()==IDOK) {
CString str_time;
CTime mytime = CTime::GetCurrentTime();
str_time = mytime.Format("%Y-%m-%d");
CStringstr = "姓名:" + dlg.m_editName +
"\n年龄:" + dlg.m_editAge
+ "\n性别:" + dlg.m_editGender
+ "\n诊号:" + dlg.m_editClinicID
+ "\n建档时间:" + str_time
+ "\n";
MessageBox(str);
}
可以改成
NEW_USER dlg;
if(dlg.DoModal()==IDOK) {
CString str_time;
CTime mytime = CTime::GetCurrentTime();
str_time = mytime.Format("%Y-%m-%d");
CStringstr = "姓名:" + dlg.m_editName +
"\n年龄:" + dlg.m_editAge
+ "\n性别:" + dlg.m_editGender
+ "\n诊号:" + dlg.m_editClinicID
+ "\n建档时间:" + str_time
+ "\n";
MessageBox(str);
}
追问
那我要怎么判断按的是确定还是取消呢??
追答
if(dlg.DoModal()==IDOK) 这句啊,如果确定就等于IDOK,否则就是取消
展开全部
if(dlg.DoModal() == IDOK)
****
else
****
****
else
****
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
NEW_USER dlg;
dlg.DoModal();
//你在这个地方显示了一次模态对话框。
dlg.DoModal();
//你在这个地方显示了一次模态对话框。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
if(dlg.DoModal() == IDOK)
MessageBox(str);
// if(dlg.DoModal() == IDCANCEL)
// return ;
在if中的判断条件中 你写跳出了一个新窗口
MessageBox(str);
// if(dlg.DoModal() == IDCANCEL)
// return ;
在if中的判断条件中 你写跳出了一个新窗口
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询