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 используются в данном приложении непосредственно безо всяких дополнительных модификаций.
Имя класса Назначение |
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); |