CreateEx()创建的子窗口与兄弟窗口重叠

时间:2012-02-28 21:38:11

标签: c++ mfc window

我尝试使用以下方法创建子窗口:

CreateWindowEx( NULL, NULL, "MyChild", WS_CHILD | WS_VISIBLE | WS_BORDER, 300, 300, 400, 200, hParentWnd, NULL, NULL );

其中父HWND hParentWnd已经有许多其他子窗口。然而,这创造了一个隐藏在所有兄弟姐妹背后的儿童窗口。 Windows Spy ++显示它位于hParentWnd的子窗口中的z顺序的顶部(第一个)。我尝试了所有不同的win32命令,包括SetWindowPos()BringWindowToTop()SetForegroundWindow()SetFocus()SetActiveWindow()SendMessage(WM_ACTIVATE, 0, 0)等,但没有带来它来自兄弟姐妹。当我在WS_CHILD命令中用WS_OVERLAPPEDWINDOW替换CreateWindowEx()时,创建的非子窗口没有问题显示为最顶层的前景活动窗口。那么我该怎样做才能让孩子从兄弟姐妹的后面登上顶峰?

万分感谢。

Z / 0

1 个答案:

答案 0 :(得分:1)

在MSDN文章中对CreateWindowEx()非常明确:

  

如果创建的窗口是子窗口,则其默认位置位于Z顺序的底部。如果创建的窗口是顶级窗口,则其默认位置位于Z顺序的顶部。

您需要使用SetWindowPos()将其移动到Z顺序的顶部。