我在 MSDN 中看到,它说:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms632680(v=vs.85).aspx
如果创建的窗口是子窗口,则其默认位置在 Z-order 的底部。如果创建的窗口是顶层窗口,它的默认位置是在 Z 顺序的顶部(但在所有最顶层的窗口之下,除非创建的窗口本身是最顶层的)。
但是,另一个文档说:
http://msdn.microsoft.com/en-us/library/windows/desktop/ms632599(v=vs.85).aspx
当应用程序创建一个窗口时,系统将它放在相同类型窗口的 z 顺序的顶部
我是这样测试的:
btn1 = ::CreateWindow(L"button", L"OK", WS_TABSTOP|BS_DEFPUSHBUTTON|WS_VISIBLE|WS_CHILD
, 10, 10, 50, 30, hWnd, (HMENU)51, hInst, NULL);
btn2 = ::CreateWindow(L"button", L"Cancel", WS_TABSTOP|WS_CHILD|BS_PUSHBUTTON|WS_VISIBLE
, 20, 20, 70, 30, hWnd, (HMENU)52, hInst, NULL);
我在一个窗口中创建了两个按钮,它们重叠,我可以看到后来创建的按钮覆盖了创建的第一个按钮。
MSDN 中的第一条语句与我的测试相矛盾吗?