在C++的MFC中如何在用DoModal()调用另外一个窗口后把原来的窗口消失?
答案:4 悬赏:40
解决时间 2021-03-13 08:48
- 提问者网友:聂風
- 2021-03-12 12:16
在C++的MFC中如何在用DoModal()调用另外一个窗口后把原来的窗口消失?
最佳答案
- 二级知识专家网友:行路难
- 2021-03-12 13:23
主窗口可采用非模式对话框方式,第二个窗口用模式或非模式都可以。
主窗口显示时,可以调对象的ShowWindow(SW_SHOW),等第二个窗口弹出后,再调主窗口对象的ShowWindow(SW_HIDE)。
如果需要在第二个窗口中单击退出程序时,直接调主窗口的OnClose(),由于OnClose()函数是主窗口的Protected函数,你可以在主窗口中定义一个Pubilc的Close函数,执行OnClose(),然后调主窗口的Close(),或者直接exit(0),不过这样有时候会出问题。
主窗口显示时,可以调对象的ShowWindow(SW_SHOW),等第二个窗口弹出后,再调主窗口对象的ShowWindow(SW_HIDE)。
如果需要在第二个窗口中单击退出程序时,直接调主窗口的OnClose(),由于OnClose()函数是主窗口的Protected函数,你可以在主窗口中定义一个Pubilc的Close函数,执行OnClose(),然后调主窗口的Close(),或者直接exit(0),不过这样有时候会出问题。
全部回答
- 1楼网友:雪起风沙痕
- 2021-03-12 17:14
CxxxDialog r;
ShowWindow(SW_HIDE);
r.DoModal();
ShowWindow(SW_HIDE);
r.DoModal();
- 2楼网友:鸠书
- 2021-03-12 15:57
DoModal()前执行ShowWindow(SW_HIDE)。 就会把父窗口隐藏了. 子窗口要响应OnClose,里面把父窗口给ShowWindow(SW_SHOW); 显示出来.
- 3楼网友:过活
- 2021-03-12 14:58
1、建立Message Map(消息映射),将button的COMMAND消息映射到一个函数上面。
2、在函数中创建record窗体的实例并调用DoModal呈现窗口。
在网上给你找了一个例子,可以自己看看:
-----------------------------
补充:如何建立消息映射这是MFC最基础的知识了,如果这个都不会那MFC其它的根本没法搞了。硬让我在这里讲消息映射这种基本功的话太啰嗦而且不一定说得清楚,你应该先看看书,或者看我上面给的链接中的例子。那个例子中的第5个就是显示多个子窗口的。什么叫做“怎么调用DoModal”?DoModal是CDialog的一个成员函数,直接调用就是了,还能有其他什么调用方法?
2、在函数中创建record窗体的实例并调用DoModal呈现窗口。
在网上给你找了一个例子,可以自己看看:
-----------------------------
补充:如何建立消息映射这是MFC最基础的知识了,如果这个都不会那MFC其它的根本没法搞了。硬让我在这里讲消息映射这种基本功的话太啰嗦而且不一定说得清楚,你应该先看看书,或者看我上面给的链接中的例子。那个例子中的第5个就是显示多个子窗口的。什么叫做“怎么调用DoModal”?DoModal是CDialog的一个成员函数,直接调用就是了,还能有其他什么调用方法?
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯