父窗口与拥有者窗口.docVIP

  • 3
  • 0
  • 约4.98千字
  • 约 4页
  • 2016-11-29 发布于重庆
  • 举报
父窗口与拥有者窗口

父窗口与拥有者窗口 一、概念和区别 在windows系统中,每个窗口对象都对应有一个数据结构,形成一个list链表。系统的窗口管理器通过这个list来获取窗口信息和管理每个窗口。这个数据结构中有四个数据用来构建list,即child、sibling、parent、owner四个域。 所以我们可以看到,窗口之间的关系有两种:owner-owned 关系和 parent-child关系。前者称之为拥有/被拥有关系,后者称之为父/子关系。在这篇文字中,我把owner窗口称之所有者窗口。换句话说,一个窗口在有一个父窗口(parent)的同时,还可能被不同的窗口拥有(owner),也可以有自己的子窗口(child)。在MFC 的CWnd类中,所有者窗口保存在m_hWndOwner成员变量中,父窗口则保存在m_hParent中,但是这两个值并不一定和窗口对象数据结构中的值相对应。 窗口之间的关系,决定了窗口的外在表现。比如显示、销毁等。 如果一个窗口数据的owner域非NULL,则它和该窗口建立了owner-owned 关系,拥有关系决定了: (1)被拥有的窗口永远显示在拥有它的那个窗口的前面; (2)当所有者窗口最小化的时候,它所拥有的窗口都会被隐藏; (3)当所有者窗口被销毁的时候,它所拥有的窗口都会被销毁。

文档评论(0)

1亿VIP精品文档

相关文档