窗口生存周期

这是一个讲述窗口生死的小说明。

  1. 有两种类型的窗口:真正的上层窗口和嵌入窗口(就像IDE中嵌入在标签页条中的窗口)。

  2. 一个窗口可以是持久或非持久的。一个非持久窗口在你关闭它时会被销毁,而持久窗口则仅仅是被隐藏。

  3. 一个窗口可以被按模态(冻结)或非模态(不冻结)模式来打开。模态模式被用一个局部事件循环实现。一个按模态模式打开的嵌入窗口会被暂时作为上层窗口。

  4. 窗口第一次被显示,会发生Open事件。

  5. 通过调用Close 方法可以关闭窗口。如果是上层窗口也可以通过点击窗口管理器的关闭按钮来关闭它。

  6. 当一个窗口关闭时,会发生一个Close事件。如果窗口是非持久的,它也会被销毁。如果窗口是用模态模式打开的,那么为了实现模态模式的局部事件循环被保留。

  7. 当一个窗口已被关闭时,它可以被再次打开,并且Open事件会再次发生。

  8. Close方法的整型参数被ShowModal方法返回。

  9. 如果在Close事件期间调用Close,该方法什么事情也不做。

  10. 如果在Open事件期间调用Close,窗口被打开。

  11. 如果在窗口已被显示时调用ShowShowModal,该方法什么事情也不做。