请教高手,如何把两个对话框最小化?

liudey 2003-10-18 05:02:17
我在一个 DoModel 的对话框上又 DoModel 一个对话框。

现在需要通过上层对话框中的一个按钮把两个对话框(应用程序就这两个对话框)最小化到任务栏。

问题:把上面的对话框最小化,下面的没有最小化。

如果getParent 最小化下面的对话框,倒是都不见了,但点任务栏上的图标无法恢复。


郁闷中。。。。。
...全文
60 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
liudey 2003-10-20
  • 打赏
  • 举报
回复
想了个比较笨的办法解决:
1.在上面的窗口中 GetParent()->ShowWindow(SW_SHOWMINIMIZED);

2.在下面的窗口中重载 PreTranslateMessage(MSG* pMsg)并加入

if (pMsg->message == WM_SYSCOMMAND && pMsg->wParam==SC_RESTORE
&& this->IsIconic())
{
ShowWindow(SW_RESTORE);
return true;
}
我估计当存在 DoModal 的对话框时,CDialog 不处理恢复窗口的系统命令,这样自己处理就行了。

现在还有个小问题,就是最小化并恢复后,按 Alt+TAB 无法切换到其他应用程序,点任务栏其他程序的图标都不行。将我的程序最小化才可用其他程序。
liudey 2003-10-20
  • 打赏
  • 举报
回复
但这两个窗口非得放一起才行,
下面那个窗口只是用来做背景的,全屏显示,上面的窗口800*600居中显示。

本来可以做在一个对话框里,我先做了800*600的,程序自动修改和恢复分辨率,但不让这样做,要求分辨率大过800*600时边上要图黑。做相对坐标麻烦点,就在下面加了个专门做背景的对话框:o
wuxfBrave 2003-10-20
  • 打赏
  • 举报
回复
可以考虑用多现程,这样DoModal()就可以分开在两个线程中了
liudey 2003-10-18
  • 打赏
  • 举报
回复
谢谢,
但还是有问题

上面的窗口缩到屏幕左下角,下层的窗口还是没办法恢复。
akiko 2003-10-18
  • 打赏
  • 举报
回复
试试这个:
GetParent()->ShowWindow(SW_SHOWMINIMIZED);
ShowWindow(SW_SHOWMINIMIZED);

15,979

社区成员

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

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