窗口与窗口之间的关系

Posted moisiet

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了窗口与窗口之间的关系相关的知识,希望对你有一定的参考价值。

参考文章:http://www.cnblogs.com/dhatbj/p/3288152.html

一、桌面窗口:

DesktipWindow,是所有窗口的父窗口,通过hwnd=::GetDesktopWindow()获取。

二、窗口样式:

只有三种窗口:重叠窗口(WS_OVERLAPPED)、弹出窗口(WS_POP)、子窗口(WS_CHILD,其中弹出窗口不能是子窗口)。

重叠窗口和弹出窗口统称为顶层窗口。

因此窗口样式再次分为:顶层窗口和子窗口。

可以这么说

三、topmost窗口:

topmost窗口是具有WS_EX_TOPMOST风格的窗口,是窗口的一种扩展风格,topmost窗口只能是顶层窗口,不能是子窗口

具有topmost风格的窗口的顶层窗口的Z-ORDER比不具有该风格的要小,显示在前面。

四、Z-Order:

z-order在前(小)的窗口先显示出来,先显示出来的窗口会被后显示出来的窗口覆盖。

每个父窗口都有一个链表,用于保存子窗口,该链表保存子窗口的前后顺序就是该子窗口的z_order的顺序。z_order在前(z_order小)的窗口先显示出来

对于顶层窗口,z_order在前的窗口显示在最前面,因为顶层窗口默认强制加了WS_CLIPSIBLINGS风格,导致后面刷新的窗口被覆盖的地方不刷新,使得z_order在前的窗口显示在最前面

对于子窗口,情况与顶层窗口相反,z_order在前的窗口被在后的窗口覆盖。因为它默认没有添加WS_CLIPSIBLINGS风格。

而子窗口的z_order比父窗口的z_order要大,因为只有父窗口显示出来了才能显示子窗口,子窗口在后面显示表示它的z_order要大。

HWND hwnd=::GetWindow(hWnd_rel,flag)用于获取对hWnd_rel有flag关系的窗口的句柄。

 

以上是关于窗口与窗口之间的关系的主要内容,如果未能解决你的问题,请参考以下文章

什么是BOM?,什么是DOM? BOM跟DOM之间的关系

转:TCP/IP详解--举例明白发送/接收缓冲区滑动窗口协议之间的关系

MFC中文档模板的作用 View Doc Frame之间的关系

父窗口与子窗口的层次关系

OpenGL - 如何理解 VAO 与 VBO 之间的关系

minigui 屏幕坐标系 窗口坐标系 客户坐标系之间的关系