И так Здорова ребятки! Разобрал я наконец то 14 главу. Предложить примеры программирования для этой главы не представляется возможным, поскольку на самом деле в ней были представлены лишь базовые механизмы создания приложений MFC. Так же нет особого смысла придумывать упаржнения и ответы к ним, поскольку вы либо и так ответы на экране, либо найдете их в тексте.
.
.
Упражнения:
- Что такое отношение между документом и представлением?
- В чем состоит назначение шаблона документов в программе MFC для Windows?
- Почему следует проявлять внимательность и планировать структуру программы заранее при использовании мастера создания приложений?
- Напишите код простой программы текстового редактора. Выполните сборку отладочной и рабочей версий и оцените типы и размеры файлов, полученных в обоих случаях.
- Создайте приложение текстового редактора несколько раз, используя различные оконные стили в окне Advanced Options (Дополнительные параметры) мастера создания приложений.
Что такое отношение между документом и представлением?
Ну хз, я пока что не сильно понял эти вопросы, но это когда есть один документ, а его представление может быть сколько угодно, ну например документ один, а мы его можем представить в виде какого нить графика и так же мы можем его представить просто текстом, то есть. То есть один документ может представляться несколькими представлениями.
В чем состоит назначение шаблона документов в программе MFC для Windows?
Ну хз. на этот вопрос я вообще ответа не знаю. Ну в общем разобрался посмотрел в книге. Короче библиотека MFC предоставляет механизм интеграции документа с его представлениями и каждого обрамляющего окна с текущим активным представлением. Объект документа автоматически поддерживает список указателей на связанные с ним представления, а объект представления имеет переменную-член, содержащую указатель на документ, с которым он связан. Каждое обрамляющее окно хранит указатель на текущий активный объект представления. Координация между документом, представлением и обрамляющим окном устанавливается объектами другого класса библиотеки MFC, называемыми шаблонами документа.
Шаблоны документа (document template) управляет объектами документов в вашей программе, а также тем, как окна и представления связаны с каждым из них. Существует один шаблон документа для каждого из типов документов, которые определены в вашем приложении. Если есть два или более документа одного и того же типа, для управления ими понадобится только один шаблон документа. Чтобы точнее описать роль шаблона документа, можно сказать, что он создает объекты документов, а представления документа создаются объектом обрамляющего окна. Объект приложения, являющийся фундаментальным для каждого приложения MFC, создает сам объект шаблона документа.
На рисунке показано графическое представление этих отношений. На этой диаграмме с помощью пунктирных линий показано использование указателей для связи объектов. Эти указатели позволяют функциям-членам объекта одного класса обращаться к открытым (public) данным и функциям-членам в интерфейсе другого объекта.
Почему следует проявлять внимательность и планировать структуру программы заранее при использовании мастера создания приложений?
Снова такой вопрос на который я не сильно шарю как ответить, возможно потому что потом будет крайне тяжело что то в уже сгенерированом шаблоне программы что то изменить.
Напишите код простой программы текстового редактора. Выполните сборку отладочной и рабочей версий и оцените типы и размеры файлов, полученных в обоих случаях.
Ну и так приступить, редактор легко писать. Мы в принципе в книге создали это же редактор. В принципе в MFC создает простой рабочий редактор с помощью мастера. От сейчас мы разберемся как это делать от начала и до конца. Выбираем пункт меню файл->создать проект.в появившемся окне
введите имя файла textEdit и выберите тип приложения «Приложение MFC» и нажмите кнопку ок. Появится окно приветствие мастера приложений MFC
нажимаем кнопку Далее и в появившемся окне выставляем такие настройки как на на скрине ниженажимаем снова кнопку Далее появится окошко
ничего здесь не меняем жмем кнопку далее.
от в этом окошке вводим расширение файла .txt как на скрине выше, без точки конечно вводим расширение и жмем снова кнопку Далее
здесь ничего не меняем и жмем далее
здесь в окошке выше выставляем такие настройки как на скрине и жмем далее
у меня появилось окошко, если у вас стоят другие настройки отличные от тех что на скрине выше то измените их и нажмите далее
Окно выше — это важное окно в котором показаны создаваемые классы приложения выберите класс cTextEditView и примите для него базовый класс cEditView как у меня стоит на скрине выше. Все должно быть так же само и нажимаем готово. Базовый класс cEditView он имеет свойства простого редактора и реально созданое приложение будет обладать свойствами редактора.
После нажатия на кнопку готово, у нас мастер создаст само приложение
в обозревателе решений мы видим, что мастер создал большое количество файлов. Дальше нажимаем Ctl+F5 и у нас запустится программа редактор созданная нашим мастером приложений МФС
это окно программы простого редактора созданное в режиме debug ну оно и в режиме release такое же будет. В окне самой программы можно вводить текст редактировать его и сохранять, так же имеется строка состояния, открывать можно текстовые файлы. В общем получился как бы простой текстовый редактор. И так нам по условиям задачи нужно посмотреть размеры редактора в debug и released режимах. Щас посмотрим я откомпилировал программу в дух режимах и размер в debug =232, а в release = 117кб. Как видно в режиме debug размер в два раза превышает размер программы в режиме release, что не удивительно потому что в режиме debug в программу добавляется дополнительный код.
Создайте приложение текстового редактора несколько раз, используя различные оконные стили в окне Advanced Options (Дополнительные параметры) мастера создания приложений.
Здесь мы просто создаем редактор тот же самый что выше создавали, но уже используем различные стили, я писать не буду какие я использую, просто скрины программ покажу ниже какие получаются стили.
ну и можно еще попробовать другие типы шаблонов, но мне реально лень их все смотреть.