import win.ui; /*DSG{{*/ var winform = win.form(text="理解窗口间的关系";right=759;bottom=469) winform.add() /*}}*/ import web.form; var wb = web.form( winform,5/*_UIFLAG_DIALOG*/,,,true); wb.html = /**
一、包含关系(整体局部关系)

也就是 “ 父窗口 / 子窗口 " 关系( parent / child 关系 )。

* 父窗口包含子窗口,子窗口拥有 `_WS_CHILD` 样式,显示在父窗口客户区内部。
* 移动父窗口,子窗口必然被移动,因为他们是整体局部的包含关系。
* 父窗口销毁时,子窗口也会被销毁。
* 一个子窗口的父窗口( parent )通常是不变的,改动父窗口这属于非常规用法,可能导致潜在的问题。

二、从属关系(责任归属关系)

也就是 “ 所有者窗口 / 从属窗口 ” 关系( owner / owned 关系 ),
消息对话框(msgbox)就是最常见的从属窗口。

* 从属窗口是在视觉上自独立的窗口,没有  `_WS_CHILD` 样式,独立显示在所有者窗口外部。
* 从属窗口( owned window )总是显示在所有者窗口(owner window)前面。
* 移动所有者窗口,从属窗口不会跟着移动。
* 所有者窗口销毁时,从属窗口也会销毁。
* 一个子窗口的所有者窗口( owner )是可变的。

获取与修改所有者窗口的函数为 `win.getOwner()`,`win.setOwner()` ,
获取与修改父窗口的函数为 `win.getParent()`,`win.setParent()` 。

aardio 中还有一种比较特别的 orphanWindow窗口。
orphanWindow 即悬浮窗口,是将普通的控件子窗口孤立出来成独立的从属窗口,
但是仍然可以显示在原来的位置,在视觉上模拟类似嵌入式子窗口的效果。
**/ winform.show(); win.loopMessage();