Глава 26. Многодокументный интерфейс_________________________797
Развитые и специализированные приложения MDI
Примеры этой главы демонстрируют основы разработки приложений MDI на основе OWL. Это потребуется большинству из вас, но кому-то, наверное, захочется большего.
Приложения MDI более чем с одним типом дочерних окон встречаются часто. Библиотека OWL предоставляет все необходимое для разработки подобных приложений.
Выше упоминалось, что в некоторых приложениях MDI может потребоваться специальное масштабирование в дочерних окнах. Если в приложении MDI требуется сравнивать более двух-трех окон, расположенных мозаикой, то бывает полезно масштабировать их так, чтобы можно было видеть содержимое окон целиком. Обычно такое масштабирование производится только
для окон, расположенных мозаикой, но не каскадом или развернутых.
«
Достичь этого не так уж трудно. В классе клиента MDI следует предусмотреть место для хранения необходимой для масштабирования информации. Затем надо переопределить обработчики CmTiieChildrenO и QnCascadeChildrenO так, чтобы при каждом изменении извещать дочерние окна о том, какой масштаб им следует выбрать. Работа с развернутым окном чуть сложнее. Здесь следует произвести некоторую обработку сообщения WM_SYSCOMMAND в классе дочернего окна. Однако в общем и целом с помощью C++ и OWL сделать это не составит большого труда.
Далее...
Как вы теперь видите, при использовании OWL разработка приложений MDI не так уж трудна. Однако она требует от вас виртуозного владения C++ и OWL. С этой точки зрения может быть полезно просмотреть некоторые связанные с данной темой материалы:
• Глава 14 "Базовые концепции классов" дает хорошее представление о классах.
• Глава 15 "Перегрузка функций" поможет вам быстрее освоиться с производными классами и поведением их функций.
• Глава 22 "Обработка исключительных ситуаций" объясняет, как обрабатывать ошибки в ваших программах. '
• Проектирование классов и их включение в программу описаны в главе 28 "Система ClassExpert".