Поделиться через


Несколько типов документов, представления и фрейма окна

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

Дополнительные сведения

  • Несколько типов документа

  • Несколько представлений

  • Несколько фрейма окна

  • Окна Splitter

Несколько типов документа

Мастер приложений MFC создает класс одинарного документа.В некоторых случаях хотя можно поддерживать несколько тип документа.Например, приложение может документы листа и диаграммы.Каждый тип документа представлен собственным классом документа и, вероятно, ее класс представления.Когда пользователь выбирает команду файла новая инфраструктура отображают диалоговое окно, в котором перечислены поддерживаемые типы документов.Затем она создает документ типа, который выбирает пользователь.Каждый тип документа управляться собственным объектом шаблона документа.

Чтобы создать дополнительные классы документов см. в разделе Добавление класса.Выберите CDocument как тип класса для наследования и передать данные документа.Затем реализуйте данные нового типа.

Чтобы позволить рамкам знать о своем экстренном классе документа, необходимо добавить второй вызов AddDocTemplate в переопределенном методе InitInstance типа приложения.Дополнительные сведения см. в разделе Шаблоны документов.

Несколько типов

Множество документов требуется только одного представления, но возможности поддерживать несколько представление одинарного документа.Чтобы помочь реализовать представления нескольких, объект документа хранится список его представлений предоставляет функции-члены для добавления и удаления представлений и передает функцию-член UpdateAllViews для разрешить представлениям кратен знают, когда данные документа.

MFC поддерживает 3 общих пользовательского интерфейса требует нескольких представлений на одном и том же документе.Эти модели:

  • Объекты представления одного и того же класса каждого фрейма документа в отдельном окне интерфейса MDI.

    Может потребоваться поддерживать создать второе окно фрейма в документе.Пользователь может выбрать команду нового окна открыть второй фрейм для одного и того же документа, а затем использовать 2 фрейма для просмотра различных частей документов одновременно.Границы поддерживают команду нового окна в меню окна для приложений MDI путем дублирования исходные окно и представление кадра, вложенные в документ.

  • Объекты представления одного и того же класса в том же окне фрейма документа.

    Окна разделитель разбивается пространство представления одного окна документа в представления нескольких отдельных документов.Платформа создает несколько объектов представления одного и того же класса представления.Дополнительные сведения см. в разделе окна Splitter.

  • Объекты представления различных классов в одном окне кадра.

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

На следующем рисунке, секционированную в части a, b и c, отображается 3 модели интерфейса пользователя в порядке, представленном выше.

Пользовательские интерфейсы Множественн-Вида

Множественное представление пользовательских интерфейсов

Границы предоставляют эти модели путем реализации нового окна и команды, предоставляя класс CSplitterWnd, как описано в окна Splitter.Можно реализовать такие как ваша другие модели, используя отправную точку.Примеры программ, иллюстрирующие различные конфигурации представлений окон кадра и splitters см. в разделе Примеры MFC.

Дополнительные сведения о UpdateAllViews см. в описании класса CView в справочнике по MFC и Образец Scribble.

Несколько фрейма окна

Можно использовать команду нового окна в меню окна для приложений MDI создать второе окно фрейма в том же документе.Дополнительные сведения см. в разделе первую модель на диаграмме пользовательские интерфейсы Множественн-Вида.

Окна Splitter

В поле разделитель, окно или может быть разбивается на два или более прокручиваемой области.Элемент управления splitter (или «маркер») разделителя в фрейме окна рядом с полосами прокрутки позволяют пользователю настроить относительные размеры панелей.Каждая панель представление на одном и том же документе.В «динамических» splitters, представления одного и того же класса, как показано в части диаграммы пользовательские интерфейсы Множественн-Вида b.В случае статических», «splitters представления могут быть различных классов.Окна разделитель обоих типов поддерживаются классом CSplitterWnd.

Динамические окна разделитель с представлениями одного и того же класса, позволяющие пользователю разделение окна по нескольким панели по странице будет ли а затем прокрутить различные области, чтобы просмотреть различные части документа.Пользователь также может unsplit окно удалить дополнительные представления.Окна разделитель, добавленные в Образец Scribble примере.Этот раздел описывает метод для создания динамических окна разделителя.Динамическое окно-разделитель показано в части диаграммы пользовательские интерфейсы Множественн-Вида b.

Статические окна разделитель с представлениями различных классов, начиная с окно разделенное на несколько панели, каждое с другой назначением.Например, в редакторе растрового изображения Visual C++, окно образа отображается 2 панели параллельной.Левая панель содержит жизн-определенный размер образа растрового изображения.Правая панель отображается увеличение или увеличиванный образ одного растрового изображения.Области разделены вертикальной черты «разделитель», пользователь может перетаскивать, чтобы изменить относительные размеры панелей.Статическое окно-разделитель показано в части диаграммы пользовательские интерфейсы Множественн-Вида c.

Дополнительные сведения см. в описании класса CSplitterWnd в справочнике по MFC и примерах MFC.

См. также

Основные понятия

Архитектура документов и представлений