Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Вы можете создавать окна непосредственно из 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
илиCRecordView
CDaoRecordView
.Элементы управления:
Элементы управления, такие как кнопки, списки и поля со списком, создаются с помощью других классов, производных отCWnd
. См. темы по управлению.Панели управления:
Дочерние окна, содержащие элементы управления. Примеры включают панели инструментов и панели состояния. См. панели управления.
Иерархия классов Окон
См. диаграмму иерархии MFC в справочнике по MFC. Представления описаны в архитектуре document/view. Диалоговые окна описаны в диалоговых окнах.
Создание собственных классов окон Special-Purpose
Помимо классов окон, предоставляемых библиотекой классов, вам могут понадобиться специальные дочерние окна. Чтобы создать такое окно, создайте собственный CWnd
производный класс и сделайте его дочерним окном фрейма или представления. Помните, что платформа управляет степенью клиентской области окна фрейма документа. Большая часть клиентской области управляется представлением, но другие окна, такие как панели управления или собственные пользовательские окна, могут совместно использовать пространство с представлением. Возможно, вам потребуется взаимодействовать с механизмами в классах CView
и CControlBar
для размещения дочерних окон в клиентской области рамочного окна.
Создание окон описывает создание объектов окна и управляемых ими окон.