Рис. 1.2. Окно Project Workspace, файлы проекта
В следующей таблице кратко описаны основные файлы проекта Multi. Ниже мы подробно рассмотрим ресурсы приложения Multi, а также опишем составляющие его классы и их методы.
Имя файла |
Описание |
ChildFrm.cpp |
Файл содержит определение методов класса CChildFrame |
ChildFrm.h |
В файле находится определение класса дочернего окна MDI – CChildFrame |
MainFrm.cpp |
Файл содержит определения методов класса CMainFrame |
MainFrm.h |
Содержит описание класса главного окна приложения, который называется CMainFrame. Класс CMainFrame наследуется от базового класса CFrameWnd, определенного в библиотеке классов MFC |
Multi.cpp |
Основной файл приложения. В нем определены методы основного класса приложения CMultiApp |
Multi.h |
В этом файле перечислены другие включаемые файлы и описан главный класс приложения CMultiApp |
Multi.pch |
Файл создается во время первой трансляции программы, если вы используете предварительную компиляцию включаемых файлов |
Multi.rc |
Файл ресурсов. В этом файле описаны все ресурсы приложения. Сами ресурсы могут быть записаны в каталоге RES, расположенном в главном каталоге проекта |
MultiDoc.cpp |
Включает определение методов класса CMultiDoc |
MultiDoc.h |
Содержит определение класса документов приложения – CMultiDoc |
MultiView.cpp |
Включает определение методов класса CMultiView |
MultiView.h |
Содержит описание класса окна просмотра приложения – CMultiView |
ReadMe.txt |
Текстовый файл, содержащий описание проекта. В нем кратко рассмотрен каждый файл, входящий в проект, перечислены классы приложения, а также представлена некоторая другая дополнительная информация |
res\Multi.ico |
Пиктограмма приложения |
res\Multi.rc2 |
В этом файле определены ресурсы, которые нельзя редактировать с помощью редактора ресурсов среды Visual C++ |
res\MultiDoc.ico |
Пиктограмма для документов приложения |
res\Toolbar.bmp |
Файл содержит растровое изображение кнопок панели управления |
Resource.h |
Файл содержит определения идентификаторов ресурсов приложения, например, идентификаторы строк меню |
StdAfx.h, StdAfx.cpp |
Использование этих файлов позволяет ускорить процесс повторного построения проекта. Более подробное описание файлов представлено ниже |
Рассмотрим ресурсы, которые MFC AppWizard создал для нашего приложения. Откройте страницу RecourceView в окне проекта Project Workspace. В нем отображается полный список всех ресурсов приложения (рис. 1.3).
Рис. 1.3. Окно Project Workspace, ресурсы приложения
Сравните эти ресурсы с ресурсами приложения с однооконным интерфейсом (том 24 серии “Библиотека системного программиста”). Вы заметите, что в состав приложения с многооконным интерфейсом входит больше ресурсов. Так, например, для многооконного приложения определены два меню, две пиктограммы, больше размер таблицы текстовых строк.
Национальные ресурсы
Обратите внимание, что все ресурсы, представленные на странице RecourceView в окне проекта Project Workspace, английские. К сожалению, MFC AppWizard из доступных нам версий Microsoft Visual C++ не позволяет выбрать для создаваемого приложения русские ресурсы (язык для ресурсов выбирается в первой панели MFC AppWizard – Step 1, во время определения свойств приложения). Поэтому для приложения Multi и всех других приложений, созданных с помощью MFC AppWizard, мы выбрали английский язык.
Если вы в Control Panel с помощью приложения Regional Settings выбрали русский язык, то в некоторых случаях ClassWizard может работать неправильно. Например, если вы добавите к английской диалоговой панели новые органы управления, то ClassWizard не позволит автоматически привязать к ним переменные. Возникнут также сложности при использовании русского текста в строковых ресурсах, помеченных как английские. Чтобы избежать этих проблем, измените язык, используемый для ресурсов. Для этого достаточно в окне Project Workspace щелкнуть по идентификатору ресурса правой кнопкой мыши и выбрать из открывшегося контекстного меню строку Properties. На экране появится диалоговая панель со свойствами выбранного ресурса. Измените в ней язык ресурса, выбрав из списка Language строку Russian.
Шаблон меню
Для многооконного приложения в ресурсах проекта определены два меню с идентификаторами IDR _ MAINFRAME и IDR_MULTITYPE. Приложение использует одно из этих меню, в зависимости от того, открыт документ или нет.
Читать дальше