如何通过点击模态对话框上一按键打开另一非模态对话框的同时关闭该模态对话框?(上午问过你的)请再帮帮忙

按键1:
void CGPS0710View::OnMenuitem32771()
{
// TODO: Add your command handler code here
CNewConnection dlg;
dlg.DoModal();
if ("OnOK();")
{
CDialog::OnOK();
}
按键2(想通过按它关闭非模态对话框)
void CNewConnection::OnOK()
{
// TODO: Add extra validation here
CMonitor *pdlg=new CMonitor();
pdlg->Create(IDD_DIALOG2,this);
pdlg->ShowWindow(SW_SHOW);
CDialog::OnOK();
}
你说:如果需要同时关闭模态对话框,那么不能在模态对话框的按钮响应函数里面处理(如你补充代码),应该对这个按钮做CDialog::OnOK()处理(我试着改了)。然后在模态对话框的DoModal()的地方,判断返值是OK(这句不明白怎么做,我上面做得不对),那么Create&ShowWindow那个非模态对话框。

我是个新手刚学了1周不到,麻烦你讲得稍微详细点好吗?
谢谢。

如果你的模态对话框类是CNewConnection的话,那么你现在的这个函数:
void CNewConnection::OnOK()
{
// TODO: Add extra validation here
CMonitor *pdlg=new CMonitor();//创建非模态对话对象并获取模态对话框对象指针
pdlg->Create(IDD_DIALOG2,this);//创建非模态对话框
pdlg->ShowWindow(SW_SHOW);//显示非模态对话框
CDialog::OnOK();//关闭模态对话框
}
就可以实现你的功能,只是要保证当按下模态对话框上的按钮时候这个函数被调用。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-12
postmessage
第2个回答  2012-07-12

如何通过点击模态对话框上一按键打开另一非模态对话框的同时关闭该模态...
pdlg->Create(IDD_DIALOG2,this);\/\/创建非模态对话框 pdlg->ShowWindow(SW_SHOW);\/\/显示非模态对话框 CDialog::OnOK();\/\/关闭模态对话框 } 就可以实现你的功能,只是要保证当按下模态对话框上的按钮时候这个函数被调用。

mfc如何点击一个按钮后,在新对话框弹出的同时,原对话框隐藏或关闭
原对话框那个按钮设置为OnOK() \/\/这样点击就关闭了 在原对话框的DoModal()处,这样处理 int nResponse = dlg.DoModal();\/\/创建模态对话框,这里就开始显示了。if (nResponse == IDOK){ \/\/ TODO: Place code here to handle when the dialog is dlg2.DoModal(); \/\/这里新对话框就弹出了 }...

mfc中button按钮打开新对话框,关闭原对话框,怎么办?
1)起两个进程 2)用你的老方法 ,但是你在dlg->DestroyWindow()的时候只是将你的新对话框destroy了,并没有将旧对话框destroy掉,所以应该响应新对话框的WM_DESTROY同时应该向旧对话框也要发送WM_DESTROY消息 这样进程就退出了.

MFC如何弹出新对话框的同时隐藏当前对话框并且关闭新对话框后出现之前对...
如果是模态的对话框,那么上一个不关闭就可以了,直接按钮消息里面弹出下一级对话框,那么下级对话框关闭,上一级自然在最前面。如果是非模态,比较好管理,只要做好几个对话框的ShowWindow的管理就可以了。看你是那种对话框。

mfc中如何在一个对话框中调用另外一个对话框的函数
模态对话框的处理过程,非模态对话框(又叫做无模式对话框),与模态对话框不同,当用户打开非模态对话框时,依然可以操作其他窗口。 建立模态对话框 选择File\/New\/MFC AppWizard[exe],Project name为Test,单击OK. 选择Single document,单击Finish. 选择左侧Workspace\/ResourceView,在Dialog上单击右键,选择Insert Dialog,...

怎样才能单击模态对话框外部,关闭该对话框
重载窗口WM_CLOSE消息,在消息响应函数中:void CDialog1::OnClose(){ \/\/ TODO:Add your message handler code here and\/or call default ShowWindow (SW_HIDE);\/\/CDialog::OnClose();}需要注意的是,标准对话框程序是模态调用的,模态窗口没有隐藏的概念,因此必须改成非模态创建才可以,主对话...

...界面下有多个按钮,点击按钮切换不同非模态对话框并显示在主界面的...
把对话框预先创建好,然后将对话框指针保存起来 这样页面切换的时候,显示一个,隐藏其他的,就达到了切换的目的

mfc:如何在对从话框中打开一个新对话框后将之前的对话框关闭
如果你想要在父窗口打开子窗口,那么就得保证父窗口不能关闭,否则你的子窗口会被自动销毁。如果你真的想把父窗口关闭,不妨将子窗口做成另外一个exe,打开另外一个exe也就意味着打开另一个进程。不会对子窗口造成影响。

mfc关闭非模态对话框
一般对话框有个“取消”按钮,响应这个按钮函数,注释掉里面默认的oncancel代码,替换为 ShowWindow (SW_HIDE);这样就隐藏了对话框。下一次,只需要调用ShowWindow(SW_SHOW);\/\/就可以重复打开

非模态对话框创建和关闭对话框
1. **对话框内部销毁:**在对话框的`OnOK`和`OnCancel`函数中,通过调用`DestroyWindow()`并重载`OnDestroy`来触发对话框的销毁,同时删除自身对象,如`CTestDlg1::OnDestroy`所示。2. **通过消息通知父窗口:**在`CTestDlg2`中,当对话框销毁时,通过发送自定义消息`WM_DELETE_DLG`给父窗口,...

相似回答
大家正在搜