读书人

怎么让父窗口显示在子窗口的前面

发布时间: 2014-01-19 01:28:51 作者: rapoo

如何让父窗口显示在子窗口的前面?
使用MFC建立了一个对话框程序
在父窗口里面使用Create创建了一个子对话框。
但是当点击父窗口的时候父窗口是激活状态。但是没有办法显示在子窗口的面前,不管是SetParent(NULL);
还是SetParent(GetDesktopWindow());都不行。父窗口一直都不能够显示在前面。这种问题应该怎么解决?

[解决办法]
子窗口肯定是显示在父窗口之上的吧,我觉得要么隐藏子窗口,要么是非父子关系。
[解决办法]
子窗口肯定显示在父窗口上,无论模态非模态,除非你调起了另一个程序窗口,否则肯定子窗口在父窗口之上。
[解决办法]
把这个“子对话框”的父窗口设置为桌面
[解决办法]

引用:
使用MFC建立了一个对话框程序
在父窗口里面使用Create创建了一个子对话框。
但是当点击父窗口的时候父窗口是激活状态。但是没有办法显示在子窗口的面前,不管是SetParent(NULL);
还是SetParent(GetDesktopWindow());都不行。父窗口一直都不能够显示在前面。这种问题应该怎么解决?

将Create的对话框的父窗口指定为桌面即可。
void CParentDlg::OnXXXX()
{
CChildDlg* pDlg = new CChildDlg;
pDlg->Create(CChildDlg::IDD, GetDesktopWindow());
pDlg->ShowWindow(SW_SHOW);
}
[解决办法]
引用:
子窗口肯定显示在父窗口上,无论模态非模态,除非你调起了另一个程序窗口,否则肯定子窗口在父窗口之上。

我错了,你可以在OnInitDialog函数里使用
::SetWindowPos(m_hWnd, HWND_TOP, 0, 0, cx, cy, SWP_NOMOVE); //HWND_TOPMOST置最上,HWND_TOP其次
这样看看行不行
[解决办法]
那个对话框 必须 是 POP 的 , 不能 child

读书人网 >VC/MFC

热点推荐