Visual C++ 6. Руководство Разработчика [rus]
.pdfРис. 20.10 В проект добавлена функция OnPaint()
Построение приложения
После того как все необходимые обработчики сообщений с помощью мастера классов будут добавлены в профамму, вы можете приступать к построению приложения. Выберите в меню
Build команду RebuildAll(рис. 20.11).
Рис. 20.11. Команда Rebuild All выполняет построение приложения
Во время построения приложения все данные об этом процессе будут выводиться на экран на вкладке Build окна Output(рис. 20.12).
363
Рис. 20.12. Вывод информации о ходе компиляции
Компилятор сообщает о том, что четыре исходных файла — GRAPH.CPP, MAINFRM.CPP, GRAPHDOC.CPP и GRAPHVIEW.CPPбыли успешно скомпилированы и скомпонованы. По правде говоря, это лишь вершина айсберга. Если вы просмотрите папку проекта, то найдете там еще около 30 различных файлов, сообщить о которых компилятор не посчитал нужным.
Исполняемый файл приложения по умолчанию будет записан в папку DEBUG.
Окно пусто, так как ни одна функция рисования в программу пока не добавлена. К тому же многие команды меню не будут работать. Дело в том, что код для обработки сообщений, связанных с выбором команд меню, вы должны ввести самостоятельно. Он не может быть сгенерирован автоматически. Но если вы хорошо усвоили предыдущий материал, то создание необходимого кода не станет для вас большой проблемой. В последнем примере этой главы будет показано, как написать соответствующие функции.
364
Рис. 20.13. Окно программы
Aнализ программного кода
Мастер AppWizard автоматически создал четыре файла: Graph.cpp MainFrm.cpp GraphDoc.cpp
и GraphView.cpp, каждый из них связан с соответствующим файлом заголовков. Файлы заголовков содержат описания классов, используемых в исходных файлах.
Файл Graph.cpp
Это основной файл и его код показан ниже:
//////////////////////////////////////////
//Единственный объект класса CGraphApp CGraphApp theApp;
//////////////////////////////////////////
//ициализация класса CGraphApp CGraphApp::Initlnstance() //Стандартная инициализация.
//Если вам не нужны используемые здесь возможности
//и вы хотите сократить размер исполняемого файла,
//удалите ненужные команды.
//Измените раздел реестра, где будут храниться //параметры программы. tRegistryKey(_T("LocalAppWizard-GeneratedApplications"));
adStdProfileSettings(); // Загрузка параметров из INI-файла, //в том числе списка последних открытых файлов //Регистрация шаблона документов приложения
SingleDocTemplate* pDocTemplate; 'OcTemplate = new CSingleDocTemplate
(
//////////////////////////////////
// CGraphApp
BEGIN_MESSAGE_MAP(CGraphApp, CWinApp) //{{AFX_MSG_MAP(CGraphApp) ON_COMMAND(ID_APP_ABOUT, OnAppAbout)
//ПРИМЕЧАНИЕ: мастер классов будет добавлять и удалять здесь
//макросы схемы сообщений.
365