7-54 Часть V. Инструментарий программиста

Структура классов в приложениях MDI

Функционирование приложений MDI в операционной системе Windows обеспечивается тремя специальными типами окон: это обрамляющее окно MDI (MDI frame window), клиентское окно MDI (MDI client window) и дочернее окно MDI (MDI child window). Каждый из этих трех типов окон должен быть создан и зарегистрирован соответствующим образом, для чего библиотека OWL предоставляет специальные классы. Имена у этих классов вполне естественные: TMDiFrame, TMDiciient и TMDichild. Чтобы гарантировать корректную работу приложений MDI на базе OWL, при их разработке следует использовать эти классы или производные от них.

Приложение SimpleMDI использует четыре класса, которые приведены в табл. 26.1. Три из них обеспечивают вышеописанные функции. Четвертый класс — класс приложения, он требуется в любом приложении, создаваемом на основе классов библиотеки OWL. Класс приложений — SimpleMDiApp наследуется от стандартного класса TApplication, а класс simpieMDiciient — от класса TMDiciient. Классы TMDiFrame и TMDichild используются в данном приложении непосредственно безо всяких дополнительных модификаций.

h07541.jpg

Имя класса Назначение

SimpleMDiApp Класс приложения TMDiFrame Обрамляющее окно MDI, служит главным окном приложения

SimpieMDiciient Клиентское окно MDI, управляет дочерними окнами в клиентской области главного окна

TMDichild Дочернее окно MDI (обрамление и клиентская область)

Класс siropieMDiApp отличается от базового класса TApplication только функцией InitMainWindow(): -

void SimpleMDiApp::InitMainWindow() { // Создание экземпляра TMDiFrame TMDiFrame* frame = new TMDiFrame(Name, MDI MENU, *(new SimpieMDiciient), false);

// Назначение значка и меню объекту frame , frame->SetIconSm(this, IDIMDIAPPLICATION) ; frame->AssignMenu(MDI MENU);

// Объявление frame главным окном SetMainWindow(frame);