- •Ф.Ф. Павлов технология программирования
- •Санкт-Петербург
- •090103 – Организация и технология защиты информации
- •Содержание
- •Раздел 1 Создание программных приложений………………..…..7
- •Тема 1. Технология программирования. Основные понятия........7
- •Тема 3. Объектно-ориентированный подход
- •Тема 4 Объектно-ориентированное проектирование
- •Раздел 3 «Перспективные направления в области создания технологий программирования» содержит 3 темы: технология ActiveX, технологии доступа к базам данных, технологии для работы в Internet.
- •Раздел 1. Создание программных приложений
- •Тема 1. Технология программирования.
- •1.1. Этапы эволюции технологии программирования
- •1.2. Жизненный цикл и этапы разработки программ
- •1.3. Постановка задачи и спецификация программы
- •1.4. Проектирование и реализация программы
- •2.1 Структура программы
- •2.2 Структура функции
- •2.3. Типы данных
- •2.4. Средства управления экраном и клавиатурой
- •2.5 Средства управления файлами
- •Тема 3. Объектно-ориентированный подход
- •3.1. Сущность объектно-ориентированного подхода
- •3.2. Инкапсуляция
- •3.3. Наследование
- •3.4. Полиморфизм
- •Тема 4. Объектно-ориентированное проектирование
- •4.1. Постановка задачи и определение спецификаций
- •4.2. Проектирование структуры программы
- •4.3. Проектирование файлов интерфейсов классов
- •4.4. Проектирование файлов реализации классов
- •Раздел 2. Особенности программирования в Windows
- •5.1. Система окон разработки и система меню
- •5.2. Библиотека классов mfc
- •5.3. Сообщения – реакция на события
- •Тема 6. Создание Windows-приложений
- •6.1. Консольные приложения
- •6.4. Диалоговые приложения
- •Тема 7. Ввод-вывод информации
- •7.1. Управление клавиатурой
- •7.2. Управление курсором
- •7.3. Управление мышью
- •Тема 8. Программирование интерфейса приложений
- •8.1. Система меню
- •8.2. Система диалоговых окон и элементов управления
- •Тема 9. Программирование файловой обработки
- •9.1. Файловая обработка объектов класса mfc
- •9.2. Файловая обработка объектов классов пользователя
- •9.3. Файловая обработка с классом cFile
- •Тема 10. Технология программирования в Widows
- •10.1. Проектирование структуры программы,
- •10.2. Создание классов предметной области
- •10.3. Создание диалоговых окон
- •10.4. Создание диалоговых окон базы справочных
- •10.5. Создание ведомости результатов
- •Раздел III. Прогрессивные технологии
- •Тема 11. Технология ActiveX
- •11.1. Концепция технологии ActiveX
- •11.2. Создание приложения-контейнера
- •11.3. Создание приложения-сервера
- •Тема 12. Поддержка баз данных
- •12.1. Технологии доступа к данным
- •12.2. Создание приложения с базой данных
- •Тема 13. Программирование для Internet
- •13.1. Технологии для работы в Internet
- •13.2. Приложение в стиле браузера
- •13.3. Приложение с протоколом http в WinInet
- •13.4. Приложение с протоколом ftp в WinInet
- •Раздел 1 «Создание программных приложений»:
- •Раздел 2 «Особенности программирования в Windows»:
- •Раздел 3 «Прогрессивные технологии программирования»:
- •Извлечение из рабочей программы дисциплины
- •Утверждаю
- •Рабочая программа
- •Технология программирования
- •Санкт-Петербург
- •4. Содержание разделов и тем дисциплины
- •Раздел 1. Создание программных приложений
- •Тема 1. Технология программирования. Основные
- •Тема 4. Технология объектно-ориентированного
5.3. Сообщения – реакция на события
Сообщение - это средство, с помощью которого операционная система сообщает приложению о произошедшем событии. Сообщения WINDOWS управляют всем процессом функционирования приложений.
Окно, а каждый информационный элемент на экране есть окно, также может посылать сообщения другому окну.
Сообщение - это вход в приложение, представляет собой событие, на которое, должно реагировать приложение. Каждое сообщение связывается с конкретным окном, с каждым из которых, в свою очередь, связана собственная оконная функция. Эта функция вызывается для обработки сообщения. Механизм сообщений в WINDOWS реализуется при помощи очереди сообщений.
Для идентификации событий WINDOWS использует целые числа, но в тексте программы используются текстовые идентификаторы для удобства программирования и читабельности программы. Большое количество директив связывают символьные идентификаторы и соответствующие числа - # define <симв. идент.> <код>, например:
# define WM_PAINT 0X000F # define WM_COMMAND 0X0111
Существуют почти 900 различных сообщений.
Префиксы в имени сообщения указывают тип окна, для которого предназначено сообщение или которое его породило:
BM_ ,BN_ - кнопка (button), EM_ ,EN_ - текстовое поле (edit box), WM_ - окно как таковое (generic window).
Примеры сообщений с префиксом WM _ :
WM_CHAR - нажатие видимых символов,
WM_KEYDOWN - нажатие невидимых символов (→,←, функциональные клавиши F1…F12).
Все сообщения в MFC разделены на основные категории:
1. Стандартные сообщения WINDOWS – это сообщения с префиксом WM_, за исключением WM_COMAND, информируют приложение о создании или уничтожении окна, о сообщениях клавиатуры и мыши, предназначены для обработки окнами, могут содержать параметры, которые определяют алгоритм обработки сообщения.
2. Командные сообщения (команды) – это сообщения WM_COMMAND , называемые командами, от объектов интерфейса пользователя, которые включают меню, кнопки панелей инструментов, клавиши-акселераторы.
3. Командные сообщения обновления пользовательского интерфейса – это сообщения, которые сообщают приложению об изменении состояния опций меню, кнопок панели инструментов, клавиш-акселераторов, например, сделать опции меню недоступными или помеченными.
4. Извещения элементов управления - это извещения от элементов управления и других дочерних окон, направляемые своему родительскому окну.
Сердцем любого приложения Windows является цикл обработки сообщений, находящийся в функции WinMain().
В библиотеке MFC использован следующий подход: для обработки каждого отдельного сообщения используется специальная функция-обработчик. Все функции-обработчики являются элементами-функциями какого-либо класса.
Но каким образом сопоставляются сообщение и соответствующая ему функция-обработчик? В традиционных Windows- программах для обработки сообщений используется в функции WndProc() оператор switch с многочисленными ветвями, что крайне не эффективно. В Visual C++ реализация взаимосвязи основана на понятии карты сообщения. Каждый класс, который получает сообщение, должен иметь свою карту сообщений.
Карта сообщений состоит из двух частей: одна в файле заголовков, другая - в файле кодов.
В первой части карты объявляется прототип функции-обработчика, например, для сообщения WM_CHAR – функция OnChar().
Вторая часть карты находится в файле кодов. Структура карты сообщений представляет собой набор макросов, называемых компонентами карты сообщений. Для каждого стандартного сообщения Windows (1-ая категория сообщений) определен свой макрос в форме: ON_ WM_XXX, где XXX -имя сообщения, например: ON_WM_CHAR.
Имена функций - обработчиков определяются при распаковке параметров каждого сообщения Windows на основе следующего простого соглашения. Имя функции-обработчика состоит из префикса On и имени соответствующего сообщения (без WM).
Например, afx_msg void OnChar(…) - это обработчик для сообщения WM_CHAR (нажата клавиша видимого символа). За формирование параметров функции-обработчика отвечает соответствующий макрос.
Для командных сообщений (2-ая категория сообщений) определен макрос в форме:
ON_COMMAND (Id, Fn) , где Id - идентификатор командного сообщения, Fn -функция-обработчик. Пример:
ON_COMMAND (ID_FILE_PRINT, CView::OnFilePrint)
Для командных сообщений обновления пользовательского интерфейса (3-я категория сообщений) определен макрос:
ON_UPDATE_COMMAND_UI (Id, Fn)
Для обработки извещений от элементов управления (4-ая категория сообщений) определен макрос в форме:
ON_XXX (…), где XXX – название извещения.
Например, для обработки извещений, введенных программистом, применяются макросы ON_CONTROL и ON_ NOTIFY:
ON_CONTROL (cod, id, Fn)
, где cod – код извещения от элемента управления, id – идентификатор извещения, Fn – функция.
ON_NOTIFY - обработка извещения от элемента управления, содержащего дополнительные сведения.
ON_MESSAGE - обработка сообщений, созданных программистом.
Существует более 100 макросов, по одному на каждое сообщение, которые направляют сообщения функциям-обработчикам.
Визуальное программирование – это автоматическая разработка программ с использованием диалоговой визуальной среды, имеющей интерактивные средства решения типовых задач, и позволяющей в диалоге с программистом создавать готовые фрагменты исходного кода.
Совершенствование современных информационных технологий, повышение логической сложности задач информационных системах в экономике и управлении привели к усложнению программного обеспечения, а это потребовало создание автоматизированных технологий разработки и сопровождения программного обеспечения.
На основе объектно-ориентированного подхода были созданы среды программирования, например Delphi, C++ Builder, Visual C++ и др., реализующие визуальное программирование.
Существуют различные способы программирования для Windows. Возможен способ программирования вручную с использованием библиотеки Windows Win32 API, содержащей 1000 функций. Однако, такой способ исключительно трудоемок, т.к. появляется много рутинной работы программиста, приходится программировать многие общие функции, WinMain, InitInstance, а также функции-обработчики, имеющие стандартные каркасы.
Эффективность и более высокий уровень создания Windows- приложений на объектно-ориентированном языке Visual C++ достигается наличием в составе Visual C++ специальных методов программирования, к которым относятся:
- библиотека классов Microsoft Foundation Classes (MFC), содержащая много стандартных задач для Windows-программирования;
- генератор приложений с набором разнообразных мастер- блоков Wizard, позволяющий генерировать программные коды различных типов приложений Windows;
- интегрированная среда разработки Microsoft Visual Studio, выполняющая создание, просмотр и редактирование файлов и проектов, формирование графического интерфейса приложения.
Технология визуального программирования будет рассмотрена в теме 10 на примере информационной системы управления.
Контрольные вопросы
Какие языки и методы программирования Вы знаете?
Чем достигается высокий уровень создания Windows- приложений на объектно-ориентированном языке Visual C++?
Чем отличаются модели программирования в MS-DOS и в Windows?
В чем преимущества использования библиотеки классов MFC?
Какие типы приложений имеются в Visual C++ ?
Перечислите этапы работы приложений.
В чем сущность сообщений?
Каким образом сопоставляются сообщения и функции- обработчики?