Реализация интерфейса пользователя
Классы отображений содержат набор методов, которые выполняют обработку событий, инициированных пользователем. Переопределение этих методов позволяет задавать:
- обработку сообщений Windows от мыши и от клавиатуры;
- обработку выполнения пунктов меню, нажатия кнопок инструментария и клавиш-акселераторов.
Реализация интерфейса пользователя может включать в себя обработку:
- определяемых пользователем пунктов меню;
- пунктов меню, определяющих стандартные действия, такие как Edit|Copy, Edit|Cut и Edit|Paste.
MFC поддерживает реализацию трех типов интерфейса для отображения одного документа посредством нескольких отображений:
- Отображение объектов одного класса в отдельных окнах документа (поддержка команды Window| New).
- Отображение объектов одного класса в одном разделенном окне документа (поддержка команды Window|Split). Создается несколько объектов отображения одного класса.
- Отображение объектов различных классов в одном окне документа.
Поддержка работы с разделенным окном реализована в классе CSplitterWnd.Разделенным окном является обычное окно, разбитое на несколько панелей (окон) и содержащее один и тот же документ.
Цикл жизни документа (а совместно с ним - и окна-рамки, и отображения) в MDI-приложении состоит из:
- вызова конструктора документа;
- вызова метода OnNewDocument или OnOpenDocument для каждого нового документа;
- отображения и обработки документа;
- удаления данных вызовом метода DeleteContents;
- вызова деструктора документа.
Цикл жизни документа (а совместно с ним - и окна-рамки и отображения) в SDI-приложении отличается тем, что вызов конструктора происходит только один раз при первоначальном создании документа; аналогично и проходит вызов деструктора. А для каждого повторно создаваемого или открываемого документа выполняются только этапы 2-3-4.