Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Класс «вид» библиотеки MFC (версия MVS 2005)




В разделе «Каркас приложений MFC» мы в самых общих чертах познакомились с архитектурой «документ-вид» библиотеки MFC. В данном разделе Вы увидите, как создать приложение на базе функций этой библиотеки, не вдаваясь во все сложности иерархии классов и взаимосвязей объектов. Вы поработаете только с одним компонентом программы — классом «вид» (view class), тесно связанным с объектом «окно». Такие компоненты, как класс приложение (application class), «окно-рамка» (frame window) и «документ» (document class) можно пока игнорировать. Ваша программа, конечно, не сможет сохранять свои данные на диске и не будет поддерживать множественное представление информации — о том, как это сделать, и о многом другом Вы можете прочесть в части III [1].

Поскольку в Windows-приложениях важную роль играют ресурсы, Вы будете использовать вкладку ResourceView окна решений для визуального просмотра ресурсов своей новой программы. Кроме того, будут даны советы по настройке среды MVS 2005, чтобы скорость сборки программы была максимальной, а также по оптимизации вывода отладочной информации.

Что такое «вид»

С точки зрения пользователя, «вид» (view) – это обычное окно, которое можно изменять в размерах, перемещать и закрывать, как любые окна в приложениях Windows. С точки зрения программиста, «вид» — это объект С++ класса, производного от класса CView библиотеки MFC. Как и для любого объекта C++, поведение объекта «вид» определяется функциями-членами  (и переменными-членами) его класса, включая и специфичные для приложения функции из производного класса, и стандартные функции, унаследованные от базовых классов.

Используя Visual C++, Вы можете создавать достаточно интересные Windows-приложения, просто добавляя код в производный класс «вид», сгенерированный MVS. Во время работы вашей программы каркас приложения MFC создает объект производного класса «вид» и отображает на дисплее окно, тесно связанное с этим объектом. Как обычно при программировании на C++, код класса разделен между двумя исходными модулями — заголовочным файлом (.h) и файлом реализации (.cpp).

Интерфейсы SDI и MDI

Библиотека MFC поддерживает приложения двух разных типов: однодокументный интерфейс (Single Document Interface, SDI) и многодокументный интерфейс (Multiple Document Interface, MDI). С точки зрения пользователя, SDI — это приложение, состоящее из единственного окна. Если такое приложение работает с «документами» в дисковых файлах, то в каждый момент времени можно загрузить только один документ. Примером приложения SDI служит Windows Notepad (Блокнот). В  MDI-приложении имеется несколько дочерних окон (child windows), каждое из которых соответствует отдельному документу. Прекрасный пример такого приложения – Microsoft Word.

При создании нового проекта параметр MDI выбран по умолчанию. На начальных стадиях освоения Visual C++ лучше создавать SDI-приложения, так как в них меньше классов и требуется учитывать меньше особенностей. Посему проверяйте, что Вы выбрали тип приложения Single Document. Архитектура каркаса приложения MFC позволяет легко преобразовывать большинство SDI-приложений в MDI-приложения.

Сценарий создания приложения с архитектурой документ-вид в среде MVS 2005

Мастер MVS генерирует код работающего приложения MFC, которое просто выводит на дисплей пустое окно, имеющее некое стандартное меню. Впоследствии Вы добавите к нему код, выполняющий отрисовку внутри окна. Далее приведены этапы создания приложения.

Шаг 1. Сгенерируйте SDI-приложение.

Из меню File MVS выберите команду New Project, в дереве Project Types выберите MFC, а в Templates – MFC Application (рис. 1). Присвойте проекту имя (в данном примере выбрано имя DRW) и щелкните ОК. Настоятельно рекомендую не устанавливать переключатель “Create directory for solution” для того, чтобы иметь меньше файлов и папок в проекте.

 

Рис.1. Выбор мастера для создания каркаса приложения

 

Среда MVS 2005 выведет следующее окно (рис. 2), в правой части которого перечислены заданные по умолчанию свойства проекта.

 

Рис. 2. Окно свойств проекта

 

Просмотрите свойства проекта по умолчанию с помощью кнопок Next и Previous или путем выбора групп свойств в левой части окна. Обратите особое внимание на вкладку Generated classes, где перечислены имена всех классов приложения, сгенерированных мастером. Вы можете изменить имена классов и файлов, но лучше этого пока не делайте во избежание путаницы. Вы заметили, что имена классов отражают их назначение? Например, имя класса CDRWView включает имя приложения (DRW) и слово View (вид, представление).

Значения всех свойств можно оставить такими, как они заданы по умолчанию, кроме группы свойств Application Type (тип приложения): выберите радиокнопку Single document вместо выбранной по умолчанию кнопки Multiple documents (рис. 3). Не забудьте также включить радиокнопку MFC Standart.

 

 

Рис. 3. Свойства приложения

 

С помощью кнопки Next просмотрите остальные вкладки со свойствами проекта, попытайтесь понять их смысл, но пока ничего не изменяйте.

После того, как Вы щелкните кнопку Finish, мастер создает подкаталог приложения (…\DRW), а в нем ряд файлов. Откройте файлы DRWView.cpp и DRWView.h и взгляните на исходный код. Вместе эти файлы определяют класс CDRWView — центральный в приложении. Объект класса CDRWView соответствует рабочему окну программы, где и происходят все «события».










Последнее изменение этой страницы: 2018-04-12; просмотров: 466.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...