Программа MFC или управление файлами с исходным кодом и файлами заголовков
При создании проектов MFC в Visual Studio, в зависимости от выбранных настроек для создаваемого проекта, генерируются следующие файлы. Например, проект содержит файлы Projnamedlg.cpp и Projnamedlg.h, если только создается проект или класс, основанный на диалоговых окнах.
Все эти файлы расположены в каталоге Projname и либо в папке с файлами заголовка (H-файлы), либо в папке с исходными файлами (CPP-файлы) в обозревателе решений.
Имя файла |
Описание |
---|---|
Projname.h |
Главный файл заголовка для программы или библиотеки DLL. Он содержит все глобальные символы и директивы #include для других файлов заголовка. Он объявляет класс CPrjnameApp, производный от CWinApp, и объявляет функцию-член InitInstance. Для элемента управления, класс CPrjnameApp, производный от COleControlModule. |
Projname.cpp |
Исходный файл основной программы. Он создает один объект класса CPrjnameApp, являющегося производным от CWinApp, и переопределяет функцию-член InitInstance. Для исполняемых модулей, CPrjnameApp::InitInstance выполняет несколько вещей. Он регистрирует шаблоны документов, которые служат как связь между документами и представлениями; создает главное фреймовое окно; и создает пустой документ (или открывает документ, если он указан как аргумент командной строки приложения). Для библиотек DLL и элементов управления ActiveX (ранее OLE), CProjNameApp::InitInstance регистрирует производство объекта элемента управления при помощи OLE, вызвав COleObjectFactory::RegisterAll, и делает вызов AfxOLEInit. Кроме того, функция-член CProjNameApp::ExitInstance используется для выгрузки элемента управления из памяти при помощи вызова AfxOleTerm. Этот файл также регистрирует элемент управления и отменяет его регистрацию в базе данных регистрации Windows, реализуя функции DllRegisterServer и DllUnregisterServer. |
Projnamectrl.h, Projnamectrl.cpp |
Объявляет и реализует класс CProjnameCtrl. Класс CProjnameCtrl является производным от COleControl. Определяются скелетные реализации некоторых функций-членов, которые инициализируют, рисуют и сериализуют (загружают и сохраняют) элемент управления. Определяются также карты сообщения, события и диспетчеризации. |
Projnamedlg.cpp, Projnamedlg.h |
Создаются, если выбирается приложение на базе диалоговых окон. Файлы объявляют и реализуют производный диалоговый класс, именуемый CProjnameDlg, а также включают скелетные функции-члены для инициализации диалогового окна и выполняют обмен данных во время диалога (DDX). В эти файлы также помещается диалоговый класс About, вместо Projname.cpp. |
Dlgproxy.cpp, Dlgproxy.h |
В программе, основанной на использовании диалоговых окон, файл реализации и файл заголовка для прокси-класса автоматизации проекта, для главного диалогового окна. Он используется, если только выбрана поддержка автоматизации. |
Projnamedoc.cpp, Projnamedoc.h |
Объявляют и реализуют производный класс документа, именуемый CProjnameDoc, а также включают скелетные функции-члены для инициализации документа, сериализуют (сохраняют и загружают) документ и реализуют отладочную диагностику. |
Projnameset.h/.cpp |
Создается, если создается программа, которая поддерживает базу данных и содержит класс набора записей. |
Projnameview.cpp, Projnameview.h |
Объявляют и реализуют производный класс представления, именуемый CProjnameView, который используется для отображения и печати данных документа. Класс CProjnameView является производным от одного из следующих классов MFC: Класс представления проекта содержит скелетные функции-члены для рисования представления и реализации отладочной диагностики. Если включена поддержка печати, добавляются записи карт сообщений для командных сообщений печати, установки печати и предварительного просмотра перед печатью. Эти записи вызывают соответствующие функции-члены в базовом классе представления. |
ProjnamePropPage.h, ProjnamePropPage.cpp |
Объявляет и реализует класс CProjnamePropPage. Класс CProjnamePropPage является производным от COlePropertyPage. Предоставляется скелетная функция-член DoDataExchange для реализации обмена и проверки данных. |
IPframe.cpp, IPframe.h |
Создаются, если на странице Параметры автоматизации мастера приложений выбран параметр "Мини-сервер" или "Полный сервер" (на шаге 3 из 6). Файлы определяют и реализуют производный класс фреймового окна "на месте", именуемый CInPlaceFrame, который используется, если сервер на месте активируется программой контейнера. |
Mainfrm.cpp, Mainfrm.h |
Объявляют класс CMainFrame, производный либо от CFrameWnd (для приложений SDI), либо от CMDIFrameWnd (для приложений MDI). Класс CMainFrame обрабатывает создание кнопок панели инструментов и строки состояния, если выбраны соответствующие параметры на странице Параметры приложений мастера приложений (шаг 4 из 6). Сведения об использовании CMainFrame см. в разделе Классы фреймовых окон, создаваемые мастером приложений. |
Childfrm.cpp, Childfrm.h |
Объявляют класс CChildFrame, производный от класса CMDIChildWnd. Класс CChildFrame используется для фреймовых окон MDI-документов. Эти файлы всегда создаются, если выбран параметр MDI. |
См. также
Ссылки
Программа ATL или управление файлами с исходным кодом и файлами заголовков
Файлы, создаваемые для проектов CLR