mfc如何关闭对话框

mfc如何关闭对话框

确定需要删除的控件,以及控件对应的变量和函数。对话框仅存的一个退出按钮关联着一个控件变量和按钮按下事件处理函数。

对按钮右键“类向导”,或者直接从菜单“项目”中找到类向导,并找到按钮对应的处理函数,选中事件函数后,点击“删除处理程序”。

转到成员变量选项卡,选中需要删除的控件变量,点击“删除变量”。

类向导的删除工作完成后,可以查看程序,你会发现变量的定义、函数的声明和定义、数据交换函数的相关语句、消息映射中的相关信息都被注释掉了。

通过以上步骤,只是将类向导生成的定义部分注释掉了,但难保开发者在别的函数中调用了该控件的变量或者函数。
如果开发者清楚知道调用位置,可以直接找到后进行删除和修改,如果不知道也没关系,直接调试程序,编译过程中让软件自动发现错误。

编译出错后选择“否”,在错误列表中双击第一个错误选项,因为往往后面的错误都是由前面错误引起的先不用管。双击后会自动跳转到错误语句处,将相关语句删除或者修改就可以了。修改完再编译继续查错,直到没错为止。

最后别忘了在对话框中将按钮delete,再生成应用程序。
温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-23
增加一个按钮资源,打开并双击,在弹出的的对话框中按确定就进入按钮的消息响应函数
void NewButton::OnOK()
{
// TODO: Add extra validation here
CDialog::OnOK();
}
有了它,程序运行后按这个按钮就能关闭对话框了。本回答被提问者采纳
第2个回答  2010-06-24
除了上面的方法,你还可以调用void CMy**Dlg::OnDestroy()函数

MFC中新建的子对话框打开后如何关闭
关闭对话框: 1.CDialog::OnOK(); \/\/确定按钮按下 CDialog::OnCancel(); \/\/取消按钮被按下 2.CDialog::DestoryWindow(); 3.CDialog::EndDialog(0); 注:CDialog::CloseWindow(); 仅仅是最小化对话框 PostMessage(WM_CLOSE)

MFC对话框的关闭方法
把父对话框指针(this)传给模态对话框,模态对话框再给父对话框发关闭消息。父对话框指针->SendMessage(WM_CLOSE);

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

关闭MFC界面弹出对话框的问题!!!
你只需要在classes\/resources\/files这3个选项中选择resources这个资源视图,然后打开Dialog这个文件夹,然后再这个文件夹上右键--插入Dialog,然后就出来了一个只有确定和取消两个键的新的对话框,想更改布局可以直接拖动那两个按钮(控件),右键按钮(比如是)选择属性,把标题该成你想要的“YES”就行了啊...

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

MFC 中如何关闭当前打开的所有的非模式的对话框。
首先要确认“所有打开的非模态对话框”和主窗口的关系,如果这些对话框没有指明父窗口甚至存在其它多个父窗口,并且对话框的声明都是临时的,那么这个事情没法做。如果所有对话框的父窗口都是同一个主窗口,那么通过EnumChildWindows获取所有对话框并关闭是没有问题的,但这个方法相对复杂,需要使用回调函数。...

如何在MFC程序运行中自动弹出对话框并关闭
新建一个基于对话框的应用程序SingleThread,在主对话框IDD_SINGLETHREAD_DIALOG添加一个按钮,ID为IDC_SLEEP_SIX_SECOND,标题为“延时6秒”,添加按钮的响应函数,代码如下:void CSingleThreadDlg::OnSleepSixSecond(){ Sleep(6000); \/\/延时6秒 } 编译并运行应用程序,单击“延时6秒”按钮,你就会...

MFC单文档的初始对话框如何退出?
在 CMainFrame::OnCreate()函数里面进行对话框显示;关闭按钮的ID号设置为IDCANCEL;当对话框结束后,DoModal()返回值为IDCANCEL直接调用exit(0);

用MFC编了一个对话框关不掉了,是怎么回事,求解!
对话框工具条右侧的红色X关闭试试,如果这个能关闭,说明你代码中对“确定”和“取消”按钮的实现函数错误。如果这个不能关闭,程序逻辑问题,一般是死循环或者消息死锁。用任务管理器,在进程中杀掉,检查代码吧。

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

相似回答