Поделиться через


Программа 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

Основные понятия

Типы файлов, создаваемых для проектов Visual C++