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 = /**
<!doctype html>
<html>
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
</head>
<body>
    <pre>
<b>一、包含关系（整体局部关系）</b>

也就是父/子窗口关系（parent/child关系）,

1、父窗口包含子窗口，子窗口显示在父窗口客户区内部。
2、这种嵌入式子窗口拥有CHILD样式，只能作为内部子窗口被包含在父窗口内部。
3、移动父窗口，子窗口必然被移动，因为他们是整体局部的包含关系。
4、父窗口销毁时，子窗口都会被销毁。

<b>二、下属关系（责任归属关系）</b>

也就是所有者窗口/下属窗口关系（owner/owned关系），消息对话框(msgbox)就是最常见的下属窗口。
传统说法如“所有窗口他所有的窗口”不好理解，在aardio中我们把owned窗口称为“下属窗口”以避免混淆。

1、下属窗口(owned window)总是显示在所有者窗口（owner window）前面。
2、下属窗口都是外部独立窗口，不使用CHILD样式，可独立显示在所有者窗口外部。
3、移动所有者窗口，下属窗口不会跟着移动，窗口仍然是各自独立显示的。
4、所有者窗口销毁时，下属窗口也会销毁。

这种独立窗口间的归属关系实际上是一种独立窗口间的父子关系，
因此所有者窗口也经常被称为父窗口，下属窗口也常常被称为外部子窗口，新手容易混淆。
aardio标准库对这些接口重新整理并进行了规范命名,提供了win.getOwner()win.setOwner() 
win.getParent() win.setParent()等标准库函数。

aardio中还有一种orphanWindow比较特别，orphanWindow实际上是独立的下属窗口，
但是他又会自动跟随所有者窗口（owner window）移动，从而模拟出嵌入式子窗口的效果。
</pre>
</body>
</html>
**/

winform.show();
win.loopMessage();
