加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c – 在模态对话框处于活动状态时隐藏主MFC窗口?

发布时间:2020-12-16 07:29:42 所属栏目:百科 来源:网络整理
导读:我有一个原生的C MFC应用程序.它有一个基于CWnd的主窗口,用户操作可以创建一个模态对话框.当对话框处于活动状态时,我希望主窗口消失,对话框可见,主窗口的图标保留在任务栏中. 我怎么能做到这一点? 如果我隐藏主窗口(ShowWindow(SW_HIDE)),任务栏图标将消失.
我有一个原生的C MFC应用程序.它有一个基于CWnd的主窗口,用户操作可以创建一个模态对话框.当对话框处于活动状态时,我希望主窗口消失,对话框可见,主窗口的图标保留在任务栏中.

我怎么能做到这一点?

如果我隐藏主窗口(ShowWindow(SW_HIDE)),任务栏图标将消失.如果我最小化主窗口(SW_MINIMIZE),则图标仍然存在.但是,由于对话框由主窗口拥有,因此也会隐藏对话框.

创建对话框后,单击任务栏图标可使对话框可见.当然,我不想要求用户这样做.

即使我在对话框的OnInit处理程序中插入ShowWindow(SW_SHOW),对话框仍然不可见.但间谍显示其可见位已设置.如果我将SetWindowActive添加到OnInit也是如此.

我对改变UI设计不感兴趣.当对话框处于活动状态时,用户仅与其交互,并且对主窗口中的任何内容都不感兴趣.因此,主窗口应该消失.

在WinXP32下使用Windows VS2005.

解决方法

好吧,在您创建对话框并将其显示为模态的代码块中,只要您将桌面窗口设置为对话框的父窗口,就可以对应用程序的主窗口(显示/隐藏)执行任何操作.通常,CDialog和衍生物的构造函数为父窗口采用NULL的默认参数,其中框架最终取代AfxGetMainWnd().而是将CWnd :: GetDesktopWindow()作为对话框的父级传递,然后您应该可以隐藏主窗口.但是,你仍然可能对任务栏有问题 – 但是我会让别人给出提示,因为我对此一无所知.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读