Производные классы окон

Вы можете создавать окна непосредственно из CWndних или создавать новые классы окон.CWnd Как правило, вы создаете собственные пользовательские окна. Однако большинство окон, используемых в программе платформы, вместо этого создаются из одного из производных CWndклассов окна кадров, предоставляемых MFC.

Классы окна фрейма

CFrameWnd
Используется для окон фреймов SDI, которые обрамляют один документ и его представление. Окно фрейма — это как основное окно фрейма для приложения, так и окна фрейма для текущего документа.

CMDIFrameWnd
Используется в качестве главного окна фрейма для приложений MDI. Основное окно фрейма — это контейнер для всех окон документов MDI и совместно с ними предоставляет общий доступ к строке меню. Окно кадров MDI — это окно верхнего уровня, которое отображается на рабочем столе.

CMDIChildWnd
Используется для отдельных документов, открытых в главном окне фрейма MDI. Каждый документ и его представление обрамляются дочерним окном фрейма MDI, содержащимся в окне основного кадра MDI. Дочернее окно MDI выглядит так же, как обычное окно фрейма, но содержится в окне фрейма MDI вместо того, чтобы сидеть на рабочем столе. Однако дочернее окно MDI не имеет собственной строки меню. Он должен предоставить общий доступ к строке меню окна фрейма MDI, содержащего его.

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

Другие классы окон, производные от CWnd

В дополнение к окнам фрейма, некоторые другие основные категории окон являются производными от CWnd:

  • Представления:
    Представления создаются с помощью производного CWndкласса CView (или одного из производных классов). Представление присоединено к документу и выступает в качестве посредника между документом и пользователем. Представление — это дочернее окно (а не дочерний элемент MDI), которое обычно заполняет клиентскую область окна фрейма SDI или дочернее окно кадра MDI (или эту часть клиентской области, которая не охватывается панелью инструментов или строкой состояния).

  • Диалоговые окна:
    Диалоговые окна создаются с помощью производного CWndкласса CDialog.

  • Формы:
    Представления форм, основанные на ресурсах диалогового шаблона, таких как диалоговые окна, создаются с помощью классов CFormViewили CRecordViewCDaoRecordView.

  • Элементы управления.
    Элементы управления, такие как кнопки, поля списка и поля со списком, создаются с помощью других классов, производных от CWnd. См . статьи по элементу управления.

  • Панели управления:
    Дочерние окна, содержащие элементы управления. Примеры включают панели инструментов и панели состояния. См . панели управления.

Иерархия классов Окон

См. диаграмму иерархии MFC в справочнике по MFC. Представления описаны в архитектуре document/view. Диалоговые окна описаны в диалоговых окнах.

Создание собственных классов окон специального назначения

Помимо классов окон, предоставляемых библиотекой классов, могут потребоваться дочерние окна специального назначения. Чтобы создать такое окно, создайте собственный CWndпроизводный класс и сделайте его дочерним окном кадра или представления. Помните, что платформа управляет степенью клиентской области окна фрейма документа. Большая часть клиентской области управляется представлением, но другие окна, такие как панели управления или собственные пользовательские окна, могут совместно использовать пространство с представлением. Возможно, вам потребуется взаимодействовать с механизмами в классах CView и CControlBar размещать дочерние окна в клиентской области окна кадра.

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

См. также

Объекты окна