在C++的MFC中如何在用DoModal()调用另外一个窗口后把原来的窗口消失?
4个回答
展开全部
主窗口可采用非模式对话框方式,第二个窗口用模式或非模式都可以。
主窗口显示时,可以调对象的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、建立Message Map(消息映射),将button的COMMAND消息映射到一个函数上面。
2、在函数中创建record窗体的实例并调用DoModal呈现窗口。
在网上给你找了一个例子,可以自己看看:
-----------------------------
补充:如何建立消息映射这是MFC最基础的知识了,如果这个都不会那MFC其它的根本没法搞了。硬让我在这里讲消息映射这种基本功的话太啰嗦而且不一定说得清楚,你应该先看看书,或者看我上面给的链接中的例子。那个例子中的第5个就是显示多个子窗口的。什么叫做“怎么调用DoModal”?DoModal是CDialog的一个成员函数,直接调用就是了,还能有其他什么调用方法?
2、在函数中创建record窗体的实例并调用DoModal呈现窗口。
在网上给你找了一个例子,可以自己看看:
-----------------------------
补充:如何建立消息映射这是MFC最基础的知识了,如果这个都不会那MFC其它的根本没法搞了。硬让我在这里讲消息映射这种基本功的话太啰嗦而且不一定说得清楚,你应该先看看书,或者看我上面给的链接中的例子。那个例子中的第5个就是显示多个子窗口的。什么叫做“怎么调用DoModal”?DoModal是CDialog的一个成员函数,直接调用就是了,还能有其他什么调用方法?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
DoModal()前执行ShowWindow(SW_HIDE)。 就会把父窗口隐藏了. 子窗口要响应OnClose,里面把父窗口给ShowWindow(SW_SHOW); 显示出来.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
CxxxDialog r;
ShowWindow(SW_HIDE);
r.DoModal();
ShowWindow(SW_HIDE);
r.DoModal();
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询