mfc中弹出下一个对话框时,调用Domodal()和ShowWind()系统都会提示没有定义怎么回事啊

一开始建了一个对话框CDlg在一个按扭的功能函数中有{CNextDlgdlg;dlg.DoModal();}从CDialog类派生出CNextDlg类... 一开始建了一个对话框CDlg在一个按扭的功能函数中有{CNextDlg dlg;dlg.DoModal();}从CDialog类派生出CNextDlg类 展开
 我来答
清心还深透灬柠檬5
2010-12-05 · TA获得超过816个赞
知道小有建树答主
回答量:565
采纳率:0%
帮助的人:399万
展开全部
这一句话要移动位置:CB* pNewB;
放在class Cexample的外面,设置程全局变量……

if(!pNewB) { // 当B没有打开时
pNewB = new CB();
// 这里要将IDD_DIALOG_B改为B对话框的ID号
pNewB->Create(IDD_DIALOG_B);
// 这里根据情况修改SW_RESTORE,比如改成可以显示后就最大化之类的
pNewB->ShowWindow(SW_RESTORE);
}
CDialog::OnOK();
代替原来的代码放到Cexample::OnBTNC()里……

---------------------------

void Cexample::OnBTNC()
{
// 使用非模式调用对话框
CB* pNewB;
pNewB = new CB();
// 这里要将IDD_DIALOG_B改为B对话框的ID号
pNewB->Create(IDD_DIALOG_B);
// 这里根据情况修改SW_RESTORE,比如改成可以显示后就最大化之类的
pNewB->ShowWindow(SW_RESTORE);
CDialog::OnOK();
}

关闭的时候需要释放pNewB的内存……
也就是说,尽量把pNewB放为全局变量……
然后创建的时候:
if(!pNewB) { // 当B没有打开时
pNewB = new CB();
// 这里要将IDD_DIALOG_B改为B对话框的ID号
pNewB->Create(IDD_DIALOG_B);
// 这里根据情况修改SW_RESTORE,比如改成可以显示后就最大化之类的
pNewB->ShowWindow(SW_RESTORE);
}

关闭B的时候,在WM_CLOSE消息里使用:
delete pNewB;
pNewB = NULL;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
微测检测5.10
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇... 点击进入详情页
本回答由微测检测5.10提供
wxmeng04
2010-12-06 · TA获得超过556个赞
知道小有建树答主
回答量:328
采纳率:0%
帮助的人:124万
展开全部
如果要使用对话框,就要包含相应的头文件,你这个头文件应该是NextDlg.h
将头文件包含到你使用对话框的那个cpp文件中就okay了。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xiaohuh421
2010-12-04 · TA获得超过904个赞
知道小有建树答主
回答量:897
采纳率:0%
帮助的人:379万
展开全部
提示没有定义什么?没有源码,没法看问题所在
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式