无边框的对话框程序所有界面最小化问题

芊芊绝唱 2016-07-06 12:34:56
主对话框:Border为None,Style是Popup,有个按钮点击后弹出对话框2
对话框2:Border为None,Style是Popup,有个按钮点击后想实现父子对话框都全体最小化却实现不了

这是我做的一个Demo,主要是界面全部无标题栏,自己加按钮实现关闭、最小化,特殊的是最小化要全部界面最小化而不是只当前界面最小化
用了::PostMessage(AfxGetMainWnd()->GetSafeHwnd(),WM_SYSCOMMAND,SC_MINIMIZE,0)无效
...全文
140 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
zgl7903 2016-07-06
  • 打赏
  • 举报
回复
ShowWindow(SW_MINIMIZE);
芊芊绝唱 2016-07-06
  • 打赏
  • 举报
回复
引用 4 楼 gz_qmc 的回复:
搞错了,要用非模式才对
恩,试了下可以的,全部最小化了,就是说祖宗最小化了,那其他所有派生的都会跟着隐藏了吧 只是这样我要改好多地方了,因为几乎都是模式对话框做的
芊芊绝唱 2016-07-06
  • 打赏
  • 举报
回复
引用 1 楼 zgl7903 的回复:
ShowWindow(SW_MINIMIZE);

用了,但是只有对话框2才会最小化,主对话框还是在,而且对话框2留了一小截长方形的在屏幕左下角,按住可以拖动,双击会还原对话框2的,如图:
gz_qmc 2016-07-06
  • 打赏
  • 举报
回复
搞错了,要用非模式才对
gz_qmc 2016-07-06
  • 打赏
  • 举报
回复
加入对话框为CxxxDlg类,对话框ID为 IDD_ME 那么: 模式对话框如下操作 void C主对话框::OnButton1() { CxxxDlg xdlg; xdlg.DoModal(); } 非模式对话框如下操作 void C主对话框::OnButton1() { CxxxDlg * xdlg=new CxxxDlg; xdlg->Create(IDD_ME,this); xdlg->ShowWindow(TRUE); }
gz_qmc 2016-07-06
  • 打赏
  • 举报
回复
因为你是用了DoModal()弹出的窗口,叫模式对话框,没有爹和娘 AfxGetMainWnd()是找祖宗用的 连爹妈都不知道,怎么找得到祖宗能 所以,你用模式对话框就可以了

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧