760___________________________Часть V. Инструментарий программиста

Здесь с помощью функции HandleMessage() экземпляры класса посылают сообщения сами себе. Но класс TMDiciient сам не обрабатывает сообщение WM_MDICASCADE, он предоставляет сделать это системе Windows.

Совет

I Borland C++ поставляется вместе с исходными текстами. Это значит, что вы можете непосредственно в исходном тексте посмотреть, что представляет из себя любой класс или библиотечная функция.

SimpleMDI неплохо иллюстрирует поведение приложений MDI. Но, как и большинство упрощенных примеров, эта программа как таковая не выполняет ничего полезного. Пора перейти к приложениям MDI, выполняющим осмысленную работу; для это попробуем придать дочерним окнам некоторую функциональность.

Расширение возможностей дочерних окон MDI

Есть несколько различных способов придания необходимых функциональных возможностей дочерним окнам MDI. Лучше всего, наверное, будет включить прикладные функции в класс окна, являющегося клиентским окном дочернего класса MDI. В этом случае дочерний класс MDI будет обрамлением дочернего окна MDI; именно поэтому класс TMDiciient является производным от класса TFrameWindow. Правда, вам может показаться непривычным подход, при котором клиент MDI управляет клиентской областью главного окна, а клиенты дочерних окон MDI обеспечивают прикладные функции дочерних окон. Однако, освоившись с этой мыслью, вы увидите, насколько понятно и логично она реализуется.

Именно эта стратегия использована в программе ResourceText (Resrctxt.exe). Программа ResourceText (внешний вид ее показан на рис. 26.11) предназначена для редактирования в текстовом виде файлов ресурсов. Хотя Resource Workshop предоставляет для разработки ресурсов удобные графические средства, большинство разработчиков считает, что в ряде случаев проще редактировать сценарии ресурсов как текст. Resource Workshop и IDE пакета Borland C++ предоставляют и такие возможности, но они не лишены недостатков. Для заполнения этого пробела и разработано приложение ResourceText.

Файл проекта приложения ResourceText называется Resrctxt.ide. Этот проект включает в себя несколько заголовочных файлов и файлов исходных текстов. Мы будем обсуждать только исходные и заголовочные файлы для главного приложения и класса клиента. MDI. Остальные листинги, необходимые для построения этого приложения, желающие смогут найти в конце главы (листинги 26.6 — 26.11).