Множественные типы документов, представления и окна фреймов
Обычная связь между документа, ее представления и его фреймового окна описана в разделе Создание документов и представлений. Многие приложения поддерживают один тип документа (но возможно многократному чтению открытые документы этого типа) с одним представлением в документе, а только один фреймовом в окне документа. Однако некоторые приложения могут изменить одно или несколько из этих умолчаний.
Дополнительные сведения
Типы многооконного
Несколько представлений
Несколько фреймовые окна
Окна-разделители
Типы многооконного
Мастер приложений MFC создает класс одного документа автоматически. В некоторых случаях, хотя, может поддерживать несколько типов документа. Например, приложение может документы листа и диаграммы. Каждый тип документа представлен своим классом документа и, возможно, свои собственные представления также классом. Когда пользователь выбирает команду файла новую платформа отображается диалоговое окно, перечислены поддерживаемые типы документов. Затем он создает документ типа, выбранные пользователем. Каждый тип документа управляемый своим собственным объектом шаблона документа.
Чтобы создать дополнительные классы документов см. в разделе Добавление класса. Выберите CDocument в качестве типа класса для наследования и укажите запрашиваемую информацию о документа. Затем предоставить данные нового класса.
Чтобы позволить платформе знать о своем классе дополнительном документа, необходимо добавить второй вызов AddDocTemplate при переопределении InitInstance класса приложения. Дополнительные сведения см. в разделе Шаблоны документов.
Несколько представлений
Многие документов требуют только одного представления, но может поддерживать несколько представлений одного документа. Чтобы помочь реализовать несколько представлений, объект документа сохраняет список его представлений, предоставляет функции-члены для добавления и удаления представления и предоставляет функцию-член UpdateAllViews для позволяет нескольким представлениям знать, когда данные изменились документа.
MFC поддерживает 3 общих интерфейса пользователя, которому требуется нескольких представлений в одном документе. Эти модели:
Объекты представления одного и того же класса, каждого отдельно в фрейме окна документа MDI.
Может потребоваться поддерживать создание второй фреймовое окно в документе. Пользователь может выбрать команду нового окна открыть второй кадр представление используемых ими одного документа, а затем использовать 2 кадра для просмотра различных частей документа одновременно. Платформа поддерживает команду нового окна в меню MDI поле для приложений с дублирования начальные фреймовое окно представления и вложенные в документ.
Объекты представления этого класса в одном фрейме окна документа.
Окна-разделители разделят пробел окна представления одного документа в представления многократному чтению отдельного документа. Платформа создает объекты множественного представления одного и того же класса представления. Дополнительные сведения см. в разделе Окна-разделители.
Объекты представления различных классов в одном окне фреймовом.
В этой модели, вариант окна-разделителя, предусмотрено несколько представлений одного фреймовое окно. Представления создаются из различных классов, каждого представления, предоставляющий альтернативный способ просмотра тот же документ. Например, одно представление может отображать документ обработки текстов в обычном режиме, пока другое представление отображает их в режиме структуры. Управление разделителя позволяет пользователю настроить относительных размеров представлений.
На следующем рисунке, разделенный на части a, B и C — отображается 3 модели интерфейса пользователя в представленном выше порядке.
Пользовательский интерфейс множественного представления
Платформа предоставляет эти модели, реализация команды нового окна и предоставляя класс CSplitterWnd, как описано в разделе Окна-разделители. Можно реализовать другие модели с использованием этих в качестве начальной точки. Примеры программ, которые показывают другие конфигурации представлений, фреймовых окон и разделителей см. в разделе Примеры MFC.
Дополнительные сведения о UpdateAllViews см. в справочнике по MFC класс CView и Образец Scribble.
Несколько фреймовые окна
Можно использовать команду нового окна в меню поле для приложений является создание второй фреймовое окно в одном документе. Дополнительные сведения см. в первой модели на рисунке Пользовательский интерфейс множественного представления.
Окна-разделители
В окно-разделителе, окно или может быть, разбивается на два или более прокручиваемые области. Управление разделителя (или «маркер разделения») в рамке окна рядом с полосами прокрутки позволяют пользователю настраивать относительных размеров областей. Каждая область представления в одном документе. В динамических», «разделителях представления одного и того же класса, как показано в части рисунка B Пользовательский интерфейс множественного представления. В «статических», разделителях представления могут быть различных классов. Окна-разделители обоих типов поддерживаются классом CSplitterWnd.
Динамические окна-разделители с представлениями того же класса, позволяющие пользователю, чтобы разделить окно в несколько областей по желанию и затем прокрутить различные области для просмотра различных частей документа. Пользователь также может unsplit окно удалить дополнительные представления. Окна-разделители, добавляемые в примере Образец Scribble. Этот раздел описывает метод для создания динамических окна-разделители. Динамический разделитель отображается в части рисунка B Пользовательский интерфейс множественного представления.
Статические окна-разделители с представлениями различных классов, начать с окном разделят на несколько областей, каждый с другой целью. Например, в редакторе растрового изображения Visual C++ окно образа отображается карта 2 областей параллельно. В левой области отображается в натуральную величину образ растрового изображения. Правая область отображает увеличенный или увеличиванный образ одного растрового изображения. Области разделяются «строку разделителя», пользователь может переместить для изменения относительных размеров областей. Статическое окно-разделитель отображается в части рисунка C — Пользовательский интерфейс множественного представления.
Класс CSplitterWnd Дополнительные сведения см. в Примеры MFC и в справочнике по MFC.