Операционная система Microsoft Windows 3.1 для программиста. Дополнительные главы


Окна MDI-приложения - часть 2


Это окно называется Client Window и оно является дочерним по отношению к главному окну приложения.

Как правило, окно Client Window занимает всю внутреннюю область главного окна приложения (client area). Поэтому окна Document Window располагаются внутри внутреннего пространства главного окна приложения. Если же в приложении используется орган управления Toolbar (набор кнопок с изображением пиктограмм, дублирующих функции меню) или Statusbar (строка состояния в нижней части главного окна приложения), необходимо искусственно уменьшить размер окна Client Window. Позже мы расскажем вам, как это сделать.

Иерархия окон, создаваемых MDI-приложением, показана на рис. 1.8.

Рис. 1.8. Иерархия окон MDI-приложения

Прежде всего, приложение создает главное окно Frame Window, вызывая функцию CreateWindow. Это окно создается аналогично обычному главному окну приложения и является перекрывающимся. Оно может иметь меню, системное меню, кнопки и рамку для изменения размера.

Перед созданием окна Frame Window приложение должно зарегистрировать класс окна обычным образом, назначив стиль окна, а также при необходимости меню и пиктограмму. Разумеется, в приложении должна быть определена соответствующая функция окна. Она похожа на обычную, но в ней вместо функции DefWindowProc вызывается функция DefFrameProc, выполняющая дополнительную обработку сообщений.

После создания окна Frame Window следует создать окно Client Window, во внутренней области которого будут располагаться окна Document Window. Окно Client Window создается на базе предопределенного класса окна "MDICLIENT" с помощью функции CreateWindow. Для окна Client Window не нужно определять функцию окна, так как она уже определена в Windows.

Внутренняя область окна Client Window называется рабочим пространством приложения (application workspace). Внутри этой области создаются дочерние окна Document Window.

И, наконец, по мере необходимости MDI-приложение создает окна Document Window, посылая окну Client Window при помощи функции SendMessage сообщение WM_MDICREATE.


Начало  Назад  Вперед



Книжный магазин