MFC 子对话框(无模态对话框)与父对话框的位置关系

WongSanPing 2010-01-05 03:56:39
一般情况下,我们通过代码创建的 无模态对话框,会在父对话框的上面。不管怎么点击父对话框,子对话框都在上面…


我现在想要做的事是,当点击一下父对话框时,父对话框显示在子对话框的上面,这样怎么写?????
...全文
201 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
WongSanPing 2010-01-07
  • 打赏
  • 举报
回复
7楼是对的,只有当兄弟关系,才可以相互被覆盖,父子关系是不能达到这中效果的……
M_S_D_N 2010-01-06
  • 打赏
  • 举报
回复
玩笑。

[Quote=引用 5 楼 wongsanping 的回复:]
不好意思,我弄懂意思。  在微软的理解中,这种事情是不能发生的,也就是说不管怎样,子对话框总会在父对话框上面。  结贴
[/Quote]
ligeqiang 2010-01-06
  • 打赏
  • 举报
回复
看看下面的代码能否达到你要的效果

关键是在Create的时候把父窗口设为Desktop

void CTestModalDialogDlg::OnButton1()
{
// TODO: Add your control notification handler code here
CNewDialog *pCNewDialog = new CNewDialog();
pCNewDialog->Create(IDD_DIALOG1, this->GetDesktopWindow());
pCNewDialog->ShowWindow(SW_SHOW);
}

我试了一下,似乎可以达到你要的效果。
lovestxu 2010-01-06
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wongsanping 的回复:]
  不好意思,我弄懂意思。  在微软的理解中,这种事情是不能发生的,也就是说不管怎样,子对话框总会在父对话框上面。  结贴 
[/Quote]
不过所谓父子关系,也是可以改变的。把它们改成兄弟关系看看
WongSanPing 2010-01-05
  • 打赏
  • 举报
回复
不好意思,我弄懂意思。 在微软的理解中,这种事情是不能发生的,也就是说不管怎样,子对话框总会在父对话框上面。 结贴
WongSanPing 2010-01-05
  • 打赏
  • 举报
回复
楼上的,都试过了,不行
WongSanPing 2010-01-05
  • 打赏
  • 举报
回复
oracle9901 不行,我试过了
lovestxu 2010-01-05
  • 打赏
  • 举报
回复
重新设置子对话框父窗口,把它父窗口设成桌面,SetParent(GetDesktopWindow())
oracle9901 2010-01-05
  • 打赏
  • 举报
回复
OVERLAPPED可重叠窗口行不行?

15,980

社区成员

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

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