Создание однодокументного приложения ATL. Лабораторная работа № 10

Здесь будет изучен другой способ разработки приложений в Visual C++ в отличие применяемых ранее. Будет создано приложение с одно-документным интерфейсом (SDI). SDI приложение – это документно-ориентированное приложение, обрабатывающее только один документ одного типа.

Примерами SDI приложений являются Notepad, WordPad и Paint. Все эти приложения могут выполнять только один вид работ и только одну задачу. WordPad можно рассматривать, как SDI версию Word. Она способна совершать много действий Word, но, если Word позволяет работать с различными документами одновременно, то WordPad ограничивается только одним документом.

Изучаемыми вопросами будут:

  • Архитектура Документ/Вид в Visual C++, используемая при создании SDI приложений.
  • Создание оболочки SDI приложения.
  • Отделение данных от их визуального представления.
  • Инкапсуляция данных в собственный C++ класс.
  • Создание взаимодействия между данными и меню.

Архитектура документ/вид

При создании SDI приложении возникает больше классов, чем для приложений типа диалог. Каждый из этих классов имеет специальное назначение для действий SDI приложений. Кроме класса диалога About имеется четыре класса для SDI приложения:

  • Класс из CWinApp
  • Класс из CFrameView
  • Класс из CDocument
  • Класс из CView

Класс CWinApp создает все другие компоненты в приложении. Он получает все сообщения о событиях и затем передает их классам CFrameView и CView .

Класс CFrameView является рамкой окна. Она содержит меню, стойку инструментов, горизонтали и вертикали сдвига и некоторые другие видимые объекты, связанные с рамкой. Этот класс определяет видимую часть документа. Очень мало (если никаких) потребуется усилий при программировании SDI приложений для изменений или дополнений в каждом из этих двух классов.

Класс CDocument относится к самому документу. В этом классе будут строиться структуры данных, необходимые для размещения и изменения данных документа. Этот класс получает входные данные от класса CView и передает полученную информацию в класс CView. Этот класс также ответственен за сохранение и извлечение данных документа из файла.

Класс CView показывает визуальное представление документа для пользователя. Этот класс передает входную информацию классу CDocument и получает отображаемую информацию из класса CDocument. Большая часть создаваемого кода будет заключаться в изображении документа для пользователя и управления вводом пользователя. Класс CView имеет несколько классов-наследников, которые можно использовать, как предки классов отображения. Эти классы-наследники приведены в Таблице 10.1.

ТАБЛИЦА 10.1. КЛАССЫ-ПОТОМКИ CView.

Класс

Описание

CEditView Обеспечивает

Комментарии к записи Создание однодокументного приложения ATL. Лабораторная работа № 10 отключены

Рубрика: Программирование

Обсуждение закрыто.