На первый взгляд может показаться, что MDI-приложение состоит из окон двух типов: главного окна приложения (которое можно отнести к перекрывающимся окнам) и дочерних окон Document Window, в которых отображаются документы или другая информация. Это не совсем верно. На самом деле в MDI-приложении имеется больше окон, чем кажется. Кроме того, окна Document Window ведут себя немного не так, как обычные дочерние окна.
Запустите приложение WSTYLE, загрузочный модуль которого есть на дискете, прилагаемой к 11 тому "Библиотеки системного программиста" (приложение WSTYLE описано в 3 главе 11 тома, оно демонстрирует поведение окон, имеющих различные стили). Внешний вид окон, создаваемых этим приложением, показан на рис. 1.7.
Рис. 1.7. Окна, создаваемые приложением WSTYLE
Проведя эксперимент, вы сможете легко убедиться в том, что дочерние окна Document Window ведут себя не так, как временные (pop up), перекрывающиеся (overlapped) или "настоящие" дочерние (child) окна. В отличие от перекрывающихся и временных окон, окна Document Window не могут выходить за границы создавшего их окна. В этом окна Document Window похожи на дочерние окна. Однако дочернее окно не может стать активным, и его заголовок (если он есть) никогда не будет выделен цветом, сколько бы вы не щелкали по нему левой клавишей мыши. Если же выбрать окно Document Window, оно становится активным и цвет его заголовка изменяется, становясь таким же, как и у активного перекрывающегося или временного окна.
Секрет такого странного поведения окон Document Window заключается в том, что Windows создает заголовок окна Document Window в виде отдельного окна и для активного окна Document Window изменяет цвет фона окна заголовка. Таким образом, для Windows окно Document Window состоит как бы из двух отдельных дочерних окон - окна заголовка и окна, отображающего документ.
Но это еще не все. Оказывается, MDI-приложение создает еще одно, невидимое окно, которое является родительским для окон Document Window.