
CMDIChildWnd класс предоставляет функциональные возможности Windows несколько документов () дочернего окна интерфейса MDI, наряду с членами для управления окном.
Дочернее окно MDI выглядит как типичный фрейме окна, за исключением того, что дочернего окна MDI появляется внутри фрейма окна интерфейса MDI, а не на рабочем столе. Дочернее окно MDI не содержит строку меню на своих собственных, но вместо этого разделяет меню фрейма окна интерфейса MDI. Рамки автоматически изменяет кадр меню MDI для представления в настоящее время активное дочернее окно MDI.
Класс для создания полезных дочернее окно MDI для вашего приложения, производный от CMDIChildWnd. Добавьте переменные-члены производного класса для хранения данных, характерных для приложения. Функции-члены реализовать обработчик сообщений и сообщение карта в производном классе, чтобы указать, что происходит, когда сообщения направляются в окно.
Существует три способа для создания дочернего окна MDI:
Перед вызовом метода Create или LoadFrame, необходимо создать объект окно в куче, с помощью оператора new C++. Перед вызовом Create можно также зарегистрировать класс окна с глобальной функции AfxRegisterWndClass для задания значка и класса стилей для кадра.
Используйте функции-члена Create для передачи параметры создания фрейма в качестве непосредственных аргументы.
LoadFrame требуется меньшее число аргументов, чем создатьи вместо этого получает большую часть его значения по умолчанию из ресурсов, включая рамки заголовка, значок, таблицы сочетаний клавиш и меню. Чтобы быть доступной для LoadFrame, все эти ресурсы должны иметь тот же Идентификатор ресурса (например, IDR_MAINFRAME).
Когда объект CMDIChildWnd содержит мнения и документов, они косвенно создаются рамки вместо непосредственно от программиста. Объект CDocTemplate организует создание кадра, создание содержащий мнения и связь представлений в соответствующий документ. Параметры конструктора CDocTemplate укажите CRuntimeClass трех классов, используемых (документ, рамку и вид). Объект CRuntimeClass используется средой для динамического создания новых кадров, когда указанный пользователем (например, с помощью файла новой команды или новые окна MDI).
Фрейм окна производный класс от CMDIChildWnd должны быть объявлены с DECLARE_DYNCREATE для того чтобы выше RUNTIME_CLASS механизм для правильной работы.
CMDIChildWnd наследует большую часть ее реализации по умолчанию от CFrameWnd. Подробный перечень этих функций обратитесь к описанию класса CFrameWnd . Класса CMDIChildWnd имеет следующие дополнительные возможности:
Не используйте оператор delete C++ для уничтожения фрейме окна. Вместо этого следует используйте CWnd::DestroyWindow . Осуществление CFrameWnd PostNcDestroy объект будет удален C++ при уничтожении окна. Когда пользователь закрывает в фрейме окна, Запуск обработчика по умолчанию будет вызывать DestroyWindow.
Более подробную информацию о CMDIChildWnd, см. Фрейм окна темы в Руководстве Visual C++ программист.
# include lt;afxwin.h>
Члены класса |nbsp; Базовый класс | Иерархическая схема
Образцыnbsp; MFC Sample MDI | Образца MFC MDIBIND | Образца MFC MDIDOCVW | Образца SNAPVW MFC
См. также CWnd, CMDIFrameWnd