Читайте также:
|
|
Библиотека Microsoft Foundation Classes предоставляет программисту простые в использовании объекты. Эта библиотека инкапсулирует наиболее важные структуры и функции API в группе классов, пригодных для многократного использования.
Библиотеки классов типа Microsoft Foundation Classes дают многочисленные преимущества в сравнении с традиционно используемыми в языке С библиотеками функций.
· Основные преимущества использования классов C++ — это
· Инкапсуляция кода и данных внутри класса
· Наследование
· Разрешение коллизий имен функций и переменных
· Получаемые классы оказываются естественным расширением языка
· Обычно при правильном проектировании библиотеки классов уменьшается общий объем текста Принципы построения библиотеки MFC.
Команда разработчиков библиотеки MFC установила ряд жестких требований, которым должна была удовлетворять реализация библиотеки. В эти требования входили следующие:
· Использовать возможности языка C++, не ошеломляя при этом программиста
· Сделать как можно более простым переход к использованию библиотеки от функций API
· Позволить обращаться к традиционным функциям при использовании классов библиотеки
· Достичь компромисса между возможностями и эффективностью
· Создать библиотеку, которая сможет быть легко перенесена на новые платформы, например Windows 95 и Windows NT
Команда разработчиков понимала, что для удачного спроектированного приложения нужно в первую очередь иметь удачно спроектированную библиотеку MFC. Классы были спроектированы так, чтобы опытным программистам как можно меньше времени пришлось тратить на изучение новых названий функций. Это было достигнуто путем тщательного подбора имен и распределения функций по классам. Разработчики предусмотрели также возможность "гибридного" программирования, когда наряду с классами из Microsoft Foundation Classes в программе используются обращения к обычным функциям Windows.
Основные возможности библиотеки MFC.
Библиотеки классов для программирования под Windows производятся и другими фирмами, но Microsoft утверждает, что ее библиотека имеет несколько неоспоримых преимуществ.
· Полная поддержка всех функций, управляющих элементов и сообщений Windows, графических примитивов GDI, меню и окон диалога.
· Использование того же соглашения об именах, которого придерживается обычный API Windows. Таким образом, по имени класса сразу становится ясным его предназначение.
· Избавление от необходимости применять оператор switch/case, который часто является источником ошибок. Каждому сообщению ставится в соответствие функция-член класса.
· Улучшенная поддержка диагностических возможностей путем записи информации об объектах в файл. Есть также возможность проверять правильность значений переменных класса.
· Архитектура, основанная на широком использовании обработки исключительных ситуаций, делает код приложения более устойчивым к ошибкам. Обеспечивается поддержка ситуаций типа "недостаток памяти" и других.
· Возможность определить тип объекта во время выполнения программы позволяет динамически манипулировать полем при создании экземпляра класса.
· Небольшой размер кода и эффективная реализация.
· Поддержка Модели составного объекта (Component Object Model, СОМ).
Библиотека Microsoft Foundation Classes. Все начинается с CObject. Важнейшие классы библиотеки. Создание приложения MFC Windows. Выбор количества окон, которые будут поддерживаться приложением.
Библиотека MFC содержит большую иерархию классов, написанных на С++.
Библиотеки классов, как правило, берут начало от одного или нескольких базовых классов, от которых порождаются все остальные. CObject — базовый класс, широко используемый при разработке приложений Windows. Массу информации о классах библиотеки можно найти в заголовочных файлах, которые находятся в каталоге MFC/INCLUDE.
Во-первых, класс CObject состоит из разделов public, protected и private. Он также обеспечивает обычный и динамический контроль типов. Вспомним, что динамический контроль типов позволяет определять тип объекта во время выполнения программы. Состояние объекта может быть сохранено на внешнем носителе (например, на диске) за счет свойства, называемого устойчивостью (persistence). Устойчивость объекта также позволяет его методам быть устойчивыми, что дает возможность восстановить данные объекта.
От базовых классов порождаются производные классы. Примером класса, порожденного от CObject, может служить CGdiObject. (CGdiObtect и его методы позволяют создавать и использовать в программе Windows средства рисования: стандартные и собственные перья, кисти и шрифты.)
Microsoft предоставляет доступ к исходным текстам библиотеки Microsoft Foundation Classes, давая максимум гибкости и адаптируемости при программировании.
Важнейшие классы библиотеки.
Некоторые классы порождаются непосредственно от CObject. Наиболее широко используемыми среди них являются CCmdTarget, CFile, CDC, CGDIObject и CMenu. Класс ССmdTarget предназначен для обработки сообщений. Класс СFile предназначен для работы с файлами. Класс CDC обеспечивает поддержку контекстов устройств. Об контекстах устройств мы будем говорить несколько позднее. В этот класс включены практически все функции графики GDI. CGDIObject является базовым классом для различных DGI-объектов, таких как перья, кисти, шрифты и другие. Класс СMenu предназначен для манипуляций с меню. От класса CCmdTarget порождается очень важный класс CWnd. Он является базовым для создания всех типов окон, включая масштабируемые ("обычные") и диалоговые, а также различные элементы управления. Наиболее широко используемым производным классом является CFrameWnd.
От класса CCmdTarget, через класс CWinThread, порождается, наверное, единственный из наиболее важных классов, обращение к которому в MFC-программах происходит напрямую: CWinApp. Это один из фундаментальных классов, поскольку предназначен для создания самого приложения. В каждой программе имеется один и только один объект этого класса. Как только он будет создан, приложение начнет выполняться.
Все MFC-программы включают заголовочный файл AFXWIN.H. В нем, а также в различных вспомогательных файлах, содержатся описания классов, структур, переменных и других объектов MFC. Он автоматически подключает большинство заголовочных файлов, относящихся к MFC, в том числе и WINDOWS.H, в котором определены все функции Windows API и другие объекты, которые используются при традиционном программировании на С и "чистом" API.
В простейшем случае программа, написанная с помощью MFC, содержит два класса, порождаемые от классов иерархии библиотеки: класс, предназначенный для создания приложения, и класс, предназначенный для создания окна. Другими словами, для создания минимальной программы необходимо породить один класс от CWinApp, а другой - от CFrameWnd. Эти два класса обязательны для любой программы.
Кроме создания вышеупомянутых классов, в программе также должна быть организована обработка всех сообщений, поступающих от Windows.
Приложение MFC является исполняемым приложением для Windows на основе библиотеки Microsoft Foundation Class (MFC). Наиболее простым способом создания приложения MFC является использование мастера приложений MFC.
Исполняемые приложения MFC в целом делятся на пять типов: стандартные приложения Windows, диалоговые окна, приложения на основе форм, приложения в стиле проводника и приложения в стиле браузера.
Для создания приложения на основе MFC используется тип проекта MFC AppWizard (exe) [20–21]. Это полноценное 32-разрядное приложение для ОС Windows, использующее для взаимодействия с пользователем стандартное графическое окно Windows.
Мастер приложений позволяет создавать три варианта приложений такого типа: SDI,MDI,Dialog Based. Для каждого варианта приложения создается особый каркас проекта.
SDI-приложение (Single Document Interface), или приложение с интерфейсом одного документа, позволяет программе работать только с одним документом. Примером такого приложения могут быть программы текстовый редактор Блокнот или графический редактор Paint.
MDI-приложение (Multiple Documents Interface), или приложение с интерфейсом многих документов, может одновременно работать с несколькими документами или с несколькими копиями одного и того же документа. Примером такого приложения могут быть некоторые версии текстового редактора Word, Adobe PhotoShop.
Dialog Based Application или приложение, основанное на диалоге, имеет отличительную черту – диалоговую панель, используемую для ввода данных в программу пользователем или для вывода результатов вычислений на экран.
Для создания каркаса приложения необходимы действия:
§ Вызов команды File/New…
§ Настройка параметров проекта в окне AppWizard/Projects:
o тип приложения – MFC AppWizard (exe),
o имя проекта (Name),
o размещение проекта (Location),
o флажок создания нового рабочего пространства в состоянии «установлен».
o нажать OK.
§ Выбор варианта приложения (Single document, Multiple documents или Dialog based).
В результате будет создан каркас MFC-приложения, в который входят модули, содержащие описания основных классов приложения, и файл ресурсов *.rc, содержащий описания диалоговых панелей, строк, акселераторов и других ресурсов. Состав классов, включенных в приложение, зависит от выбранного варианта приложения.
Первый шаг MFC AppWizard: На первом шаге вам предлагается определить, какой тип пользовательского интерфейса должно иметь приложение. Вы можете выбирать между многооконным интерфейсом (Multiple documents), однооконным интерфейсом (Single document) и интерфейсом основанном на диалоговой панели без главного окна (Dialog based).
Практически все приложения имеют пользовательский интерфейс, построенный на основе окон. Это может быть диалоговая панель, одно окно или несколько окон, связанных вместе. Основные свойства окон представлены классом CWnd, наследованным от класса CCmdTarget. CWnd. Класс CWnd сам является базовым классом для большого количества классов, представляющих разнообразные окна
Дата добавления: 2015-12-08; просмотров: 292 | Нарушение авторских прав