gpt4 book ai didi

c++ - 在模态对话框处于事件状态时隐藏主 MFC 窗口?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:12:26 26 4
gpt4 key购买 nike

我有一个 native C++ MFC 应用程序。它有一个基于 CWnd 的主窗口,用户操作可以创建一个模态对话框。当对话框处于事件状态时,我希望主窗口消失,对话框可见,并且主窗口的图标保留在任务栏中。

我怎样才能做到这一点?

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

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

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

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

在WinXP32下使用Windows VS2005。

最佳答案

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

关于c++ - 在模态对话框处于事件状态时隐藏主 MFC 窗口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9982702/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com