老实说我每次使用SetWindowPos()这个函数的第一个参数就是来设置Z-Order的。而我每次基本都不写这个参数。记起来上次去面试好像被问道这个问题。
所以今天花费一点时间搜索一下。
============= Explanation One ======================
Z Order
The Z order of a window indicates the window's position in a stack of overlapping windows. This window stack is oriented along an imaginary axis, the z-axis, extending outward from the screen. The window at the top of the Z order overlaps all other windows. The window at the bottom of the Z order is overlapped by all other windows.
The system maintains the Z order in a single list. It adds windows to the Z order based on whether they are topmost windows, top-level windows, or child windows. A topmost window overlaps all other non-topmost windows, regardless of whether it is the active or foreground window. A topmost window has the WS_EX_TOPMOST style. All topmost windows appear in the Z order before any non-topmost windows. A child window is grouped with its parent in Z order.
When an application creates a window, the system puts it at the top of the Z order for windows of the same type. You can use the BringWindowToTop function to bring a window to the top of the Z order for windows of the same type. You can rearrange the Z order by using the SetWindowPos and DeferWindowPos functions.
The user changes the Z order by activating a different window. The system positions the active window at the top of the Z order for windows of the same type. When a window comes to the top of Z order, so do its child windows. You can use the GetTopWindow function to search all child windows of a parent window and return a handle to the child window that is highest in Z order. The GetNextWindow function retrieves a handle to the next or previous window in Z order.
================== Expalanation Two ===============
Z轴是垂直于你的显示器平面的。方向是从里向外的。通常情况下是以桌面为底的,其他窗口就象羊肉串一样串在这跟轴上。但和羊肉串不一样的是我们可以通过BringWindowToTop、SetWindowsPos、SetForegroundWindows来该变窗口在Z轴的位置
================== Expalanation Three ===============
http://writeblog.csdn.net/PostEditPlain.aspx
这个是开源的代码,估计能很好的说明我们要理解的了。其他找到的解释都差不多。
To Be Continued..........