我尝试使用以下方法创建子窗口:
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
答案 0 :(得分:1)
在MSDN文章中对CreateWindowEx()非常明确:
如果创建的窗口是子窗口,则其默认位置位于Z顺序的底部。如果创建的窗口是顶级窗口,则其默认位置位于Z顺序的顶部。
您需要使用SetWindowPos()将其移动到Z顺序的顶部。