Библиотека MFC и ее использование



1.     Программирование для Windows.

Интерфейс всех программ, выполняющихся под ОС Windows практически одинаков - их работа отображается в окнах. Наиболее важными частями окна Windows являются:
  • Рамка
  • Панель заголовка с пиктограммой, текстом и спецкнопками;
  • Панель меню и панели инструментов
  • Клиентская часть окна



Любая прикладная программа работает под управлением ОС Windows. Эта ОС является мультипрограммной, распределяет ресурсы компьютера  и предоставляет всем прикладным программам стандартный интерфейс. Поэтому:
1.      Прикладные программы ожидают событий (перетаскивание окна пользователем, предоставление ресурсов, например, принтера и т.п.);
2.      Каждое событие ОС записывает в сообщение и помещает в очередь сообщений прикладной программы. Прикладная программа реагирует на сообщение, если умеет (есть соответствующий программный код). Если программа не может обработать данное сообщение, последнее передается обратно ОС и та обеспечивает его обработку по умолчанию.
Взаимодействие между ОС Windows и прикладной программой осуществляется с помощью  прикладного программного интерфейса -Windows API . Это – набор большого количества функций, написанных довольно давно, в основном, на языке С, использовать который непосредственно достаточно сложно.
Поэтому  далее была написана ООП библиотека MFC (Microsoft Foundation Classes), которая сильно упрощает использование   Windows API, однако, всё еще требует значительных усилий для изучения и использования.
В последнее время системы программирования под ОС  Windows позволяют автоматически генерировать код, необходимый для создания графического интерфейса программ.
 


2.Общие сведения о библиотеке
MFC  это базовый набор (библиотека) классов, написанных на языке С++ и предназначенных для упрощения и ускорения процесса программирования для Windows. Библиотека содержит многоуровневую иерархию классов, насчитывающую около 200 членов. Они дают возможность создавать Windows-приложения на базе объектно-ориентированного подхода. С точки зрения программиста, MFC представляет собой каркас, на основе которого можно писать программы для Windows.

С каждым MFC-приложением связывается определяющий его на верхнем уровне объект-приложение theApp, принадлежащий классу, производному от CWinApp. Объект-приложение –это то, что Windows запускает при старте программы.



Как правило, структура приложения определяется архитектурой Document-View (документ-облик). Это означает, что приложение состоит из одного или нескольких документов - объектов, классы которых являются производными от класса CDocument (класс "документ"). Под документом понимают совокупность данных прикладной программы (приложения). Программы, для которых нужен только один документ за раз, используют однодокументный интерфейс SDI (Single Document Interface), а если нужно открывать множество документов одного типа, используется многодокументный интерфейс MDI (Multiple Document Interface), когда каждый документ отображается в своем дочернем окне приложения.


Объекты, их которых состоит приложение, являются объектами классов, производных от классов библиотеки MFC. Разработка приложения состоит в том, что программист берет из библиотеки MFC классы CWinApp, CFrameWnd, CDocument, CView и т.д. и строит производные классы. Приложение создается как совокупность объектов этих производных классов. Каждый объект несет в себе как наследуемые черты, определяемые базовыми классами, так и новые черты, добавленные программистом. Наследуемые черты определяют общую схему поведения, свойственную таким приложениям. Новые же черты позволяют реализовать специфические особенности поведения приложения, необходимые для решения стоящей перед ним задачи.
 


Таким образом, почти в каждой прикладной программе (Windows-приложении) имеются базовые классы:

  • Класс приложения CMyApp;
  • Класс обрамляющего окна (рамки) CMyWnd;
  • Класс документа CMyDoc, который определяет документ, содержащий данные приложения;
  • Класс представления CMyViev, который определяет, как должны отображаться данные, содержащиеся в CMyDoc, в клиенской области окна, созданного объектом CMyWnd.


При определении производного класса программист может:

  • переопределить некоторые методы базового класса, причем те методы, что не были переопределены, будут наследоваться в том виде, в каком они существуют в базовом классе;
  • добавить новые методы;
  • добавить новые переменные.

3. Обработка сообщений
  Сообщение - извещение о том, что произошло некоторое событие (пользователь нажал клавишу мыши, выбрал пункт меню  и т.д.)
.


Сообщения начинаются с букв WM_ , например:
WM_LBUTTONDOWN –сообщение о нажатии левой клавиши мыши;
WM_CHAR –сообщение о нажатии клавиши клавиатуры;
WM_COMMAND-сообщение щелчке в пункте меню;
WM_PAINT –сообщение выводе графики в область окна.

Для организации обработки сообщений нужно :
  • Включить команду сообщения в карту сообщений программы.
  • Включить прототип функции-обработчика в описание класса, ответственного за обработку данного сообщения.
  • Написать функцию-обработчика сообщения.

Обычно добавление функции-обработчика сообщения выполняется с помощью Мастера системы Visual Studio. Мастер :
  • изменяет  определение класса, добавив туда описание новой функции-члена (обработчика),
  • обновляет карту сообщений
  •  вставляет минимальный код функции-обработчика.
Программисту только остается написать  часть кода, которая сделает задуманные действия (обработает сообщение): нарисует, выведет текст на экран и т.д.
Например,  обработчик запроса вывода графики в окне:

Свою часть программы пишете после зеленой строки комментариев системы.

Комментариев нет:

Отправить комментарий