MFC如何弹出新对话框的同时隐藏当前对话框并且关闭新对话框后出现之前对话框

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC如何弹出新对话框的同时隐藏当前对话框并且关闭新对话框后出现之前对话框相关的知识,希望对你有一定的参考价值。

今天这个问题好像回答过,最简单的办法:
原对话框那个按钮设置为onok()
//这样点击就关闭了
在原对话框的domodal()处,这样处理
int
nresponse
=
dlg.domodal();//创建模态对话框,这里就开始显示了。
if
(nresponse
==
idok)

//
todo:
place
code
here
to
handle
when
the
dialog
is
dlg2.domodal();
//这里新对话框就弹出了
参考技术A 如果是模态的对话框,那么上一个不关闭就可以了,直接按钮消息里面弹出下一级对话框,那么下级对话框关闭,上一级自然在最前面。
如果是非模态,比较好管理,只要做好几个对话框的
ShowWindow
的管理就可以了。看你是那种对话框。
参考技术B 给新的对话框注册一个“创建完毕后执行”的函数,在这个函数里执行一些操作,比如说隐藏你的上一个窗口 参考技术C 好好利用起
ShowWindow(SW_HIDE)

ShowWindow(SW_SHOW)
函数功能,而不要直接去调用
CDialog::OnOK()

CDialog::OnCancel()
ShowWindow(SW_HIDE);
//隐藏当前对话框
CTestDlg
dlg;
dlg.DoModal();
//弹出新对话框
ShowWindow(SW_SHOW);
//恢复当前对话框

MFC绘图基础——上机操作步骤

一、上机之前的介绍

软件环境:VC++6.0

目的:熟悉基本的MFC框架搭建和了解界面

 

二、MFC上机操作步骤

1,在Windows桌面上运行VC++6.0。

2,新建项目工程文件。

 

3,在MFC 应用程序向导-步骤1 对话框中,选中单文档单选按钮,其余保持默认。

 

4,弹出新建工程信息的对话框,单击确定。

5,完成上述步骤后,工程Testone的MFC框架已经生成。

 

6,在集成开发环境的左侧工作窗口中有3个标签页。

  • ClassView 显示所创建的类和成员函数
  • ResourceView 显示所创建的资源
  • FileView 显示程序文件,主要包括程序源文件、头文件和资源文件

        

7,在CTestView 类的源文件TestView.cpp中可以找到成员函数OnDraw()。其内容如下:

void CTestoneView::OnDraw(CDC* pDC)
{
    CTestoneDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
}

 

其中pDC定义为CDC类的指针。pDoc通过GetDocument()函数得到了指向文档类CTestoneDoc的指针。ASSERT_VALID(pDoc)函数使pDoc指针有效。使用pDC指针,可以对CDC类的成员函数进行操作。

注意:OnDraw()函数是由系统框架直接调用的,每当窗口重绘时就会自动执行。

 

8,单击工具条上的按钮,就可以直接编译、运行程序。

 

三、结束语

至此,尽管未编写一行代码,但Test工程已经形成一个可执行程序的框架了。以后的工作就是针对具体的设计任务,为该框架添加自己的程序代码。

接下来就是Coding~~~

 

以上是关于MFC如何弹出新对话框的同时隐藏当前对话框并且关闭新对话框后出现之前对话框的主要内容,如果未能解决你的问题,请参考以下文章

为啥网页上总会弹出有错误的对话框?

MFC如何隐藏对话框?

MFC编程的时候怎么打开一个程序的同时关闭当前程序?

MFC为啥一关闭对话框就系统崩溃 弹出英语说某个地址不可写。。。?

ASP.NET如何点击按钮后关闭当前窗口?

MFC 对话框设置