Четверг, 16.05.2024, 21:42
Главная Регистрация RSS поиск
Приветствую Вас, Гость
Меню сайта
Категории раздела
HTML [44]
Visual C++ и MFC [21]
c++ [78]
php [19]
Javascript [15]
C# [51]
загрузки [0]
XNA [10]
создание игр с помощью xna
Наш опрос
Каким языком программирования вы увлекаетесь
Всего ответов: 2420
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Реклама
Главная » Статьи » Visual C++ и MFC

Иерархия классов MFC и Class Wizard

После долгих страданий на ниве объектно-ориентированного программирования, борьбы с классами, обьектами, конструкторами и иже с ними вы, наконец, добрались до вершины творчества современного программиста - приложению под Windows. Знакомство с первым образцом программы такого типа уже произошло. Скорее всего, она повергла вас в уныние. Столько строк кода ради какого-то окошка. А если таких окошек понадобится несколько??? Одним словом ужас и кошмар. Да судьба ваша страшна... Однако не стоит отчаиваться - все не так плохо!!! Можно избежать той рутины с помощью одного прекрасного средства!!! Нет, не подумайте ничего плохого!!!

Его название - MFC

MFC - расшифровывается как Microsoft Foundation Classes.

MFC - это библиотека классов, которая призвана упростить жизнь программисту. Классы, входящие в неё, охватывают большую часть функциональных возможностей Windows, а также представляют разработчику значительное количество не только очень мощных дополнительных возможностей, но и целые механизмы, которые не нарушая идеологии операционной системы, существенно её расширяют и упрощают. При создании библиотеки MFC преследовались следующие цели :

  • Сокращение усилий по программированию приложений под Windows.
  • Минимальный размер вспомогательного кода.
  • Скорость выполнения программ, написанных с помощью MFC, должна быть сопоставима с программами, написанными на языке С с использованием WIN32 Api.

В реализации библиотеки эти проблемы были решены с блеском.

Подробней об Иерархии классов MFC

Удачный день! Ещё не написали ни одной строчки кода, а уже получили целую готовую библиотеку классов, проверенную и оттестированную. Давайте приступим к разбору сего приятного подарка. Внизу изображена сама Иерархия классов MFC!!!

Иерархия MFC

На первый взгляд выглядит устрашающе, но только на первый!!! Начнем анализ изображения. Наверху иерархии находится абстрактный базовый класс CObject. В зависимости от отношения к этому классу все остальные классы библиотеки MFC можно условно разбить на две группы: классы, производные от CObject, и классы, не зависящие от него. Большинство классов относятся к первой группе ( т. е. являются производными от CObject ). Функции и элементы данных CObject представляют наиболее общие свойства производных от него классов MFC. Основное назначение этого класса заключается в предоставлении всем производным классам следующих возможностей:

  • Хранение информации о классе обьекта во время выполнения.
  • Поддержка сериализации и диагностики обьекта.

С понятием сериализации вы столкнетесь в дальнейшем. От CObject наследуются следующие категории классов:

  1. Классы, отвечающие за архитектуру приложения, работу с сообщениями, окнами, документами. Базовым классом для данной категории является CCmdTarget.
  2. Набор классов, реализующий механизм обработки исключений средствами MFC. Базовый класс для этой группы - CException.
  3. Классы, предназначенные для работы с файлами любого типа. Пример базового класса - CFile.
  4. Классы, направленные на работу с контекстом устройства. Базовый класс - CDC. Классы, представляющие графические обьекты ( кисть, шрифт и т. д. ). Базовый класс - CGdiObject.
  5. Категория вспомогательных классов, например, CImageList.
  6. Классы, предназначенные для работы с базами данных.
  7. Классы, реализующие типы данных. Например, массивы, списки, хэши. Примеры классов: CArray, CList, CMap.
  8. Другие категории классов, производные от CObject.

Голова может пойти кругом от набора возможностей, рассмотренных выше классов. Обратимся ко второй группе классов ( !CObject ). В ней находятся классы, не наследующие CObject. На первых порах вы узнаете о следующих классах: CString - класс для работы со строками, CPoint - класс для хранения координат точки, CRect - класс для работы с прямоугольниками. С остальными классами вы познакомитесь в процессе обучения.

Class Wizard

Class Wizard - это специальная утилита, входящая в состав среды Visual C++. С её помощью можно создавать обработчики сообщений, новые классы, добавлять переменные и делать многое другое. Class Wizard активизируется по нажатию CTRL+W на клавиатуре или через главное меню View->ClassWizard. Внешний вид:

С помощью первой вкладки Message Maps вы можете создавать обработчики сообщений, новые классы.

  1. В выпадающем списке Project стоит имя активного проекта.
  2. В выпадающем списке Class Name содержатся все классы, которые есть в программе.
  3. В списке Object IDs находится название выбранного в списке Class Name класса и ID элеменов управления, связанных с ним.
  4. В списке Messages находятся сообщения доступные для активного класса и элементов, связанных с ним.
  5. В списке Member functions находятся названия сообщений, для которых уже созданы обработчики в текущем классе.

Например, вы хотите создать обработчик сообщения WM_LBUTTONDBLCLK для класса диалога.

  1. Выбрать название класса диалога в выпадающем списке Class name.
  2. Выбрать название класса диалога в списке Object IDs.
  3. Найти название сообщения в списке Messages и выбрать его.
    Примечание:
    сообщения, выделенные жирным шрифтом, уже имеют соответствующие
    обработчики в текущем проекте.
  4. Нажать на кнопку Add Function.После этого добавится функция обработчик этого сообщения.Она появится в списке под названием Member functions.
  5. Для редактирования тела обработчика нужно нажать кнопку Edit Code.

В следующих уроках вы продолжите знакомство с Class Wizard.

Категория: Visual C++ и MFC | Добавил: slava (26.09.2009)
Просмотров: 8892 | Рейтинг: 2.5/2
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]