- •2) Виртуальная память
- •3) Вывод информация в окно с помощью классов из библиотеки mfc.
- •4) Иерархия классов библиотеки mfc.
- •5 Императивное, функциональное и логическое программирование. Сходство и различие.
- •6)Контейнерные классы библиотеки mfc.
- •7)Контекст устройства. Классификация контекстов устройств. Функции работы с контекстами устройств
- •8. Назначение и Классификация ппп
- •9) Направления интеллектуализации пакетов прикладных программ.
- •10.Направления интеллектуализации ппп. Типология задач интеллектуализации.
- •11) Обработка исключений с помощью библиотеки mfc.
- •12)Обработка сообщений в библиотеке mfc
- •13) Общая характеристика ппп. Функциональное и системное наполнение ппп. Типовые проекты ппп.
- •14) Объекты в Win32. Классификация объектов. Функции работы с объектами Win32.
- •16)Организация асинхронного ввода. Сообщения от манипулятора типа «мышь». Сообщения от клавиатуры (см также 33!!!)
- •17 Организация взаимодействия процессов и потоков в Win32.Процессы и потоки в Win32. Приоритеты. Планирование
- •18 Основнные понятия объектно-ориентированного программирования.
- •19) Библиотека stl.
- •21)Полиморфизм. Перегрузка методов и операторов. Виртуальные методы.
- •23) Понятие сериализации.
- •24 Стандартные элементы управления
- •25) Процессы и потоки в Win32. Приоритеты. Планирование процессорного времени. Функции работы с процессами и потоками.
- •26)Архитектура «документ/представление»
- •Глава 20. Документ и его представления
- •Глава 21. Печать и предварительный просмотр документов
- •27) Реализация многопоточных приложений с использованием библиотеки mfc.
- •28 Ресурсы Windows. Способы задания ресурсов Windows-приложения и их использования.
- •29) Системы координат
- •29 Система координат
- •30 Средства реализации взаимного исключения в Win32.
- •31)Стандартные элементы управления и диалоговые панели в библиотеке mfc.
- •32 Структура windows приложения.
- •33) Структура и типология сообщений в Win32. Классиф сообщений. Очередь сооб, ф-ункции работы с ней. (см также 16!)
- •34) Таймер. Назначение, свойства и особенности использования
- •2) Можно заставить Windows пересылать сообщения другой функции этого же приложения.
- •35) Технологии конструирования по
- •36) Шаблоны классов и функций
- •37) Шрифты Типы шрифтов
- •Создание dll
10.Направления интеллектуализации ппп. Типология задач интеллектуализации.
Интелектуализация процессов - переход от систем, основанных на переработке данных, к системам, работающим со знаниями. Под знаниями понимаются информационные структуры, заполненные накопленными фактами, закономерностями, гипотезами. Разница между обычными и интеллектуальными системами состоит в том, что первые работают со сведениями, относящимися к конкретному предмету, а вторые – со знаниями об абстрактных сущностях (объектах, предметах).
По типу обрабатываемых данных и используемых операций, а также способам организации вычислительного процесса в ИС можно условно выделить следующие классы задач: I) обработка символьной информации; 2) решение переборных вычислительных и логических задач и построение логического вывода решения с использованием заданной системы правил; 3) работа с БД, содержащими сложные информационные связи; 4) высокоскоростная обработка июбражений и речи.
В рамках приведенной классификации укажем основные направления интеллектуализации ППП: 1) синтез программ; 2) общение на естественном языке {анализ входных сообщений, синтез выходных сообщении, ведение диалога); 3) генерация стратегий поиска; 4) генерация навигационных маршрутов; 5) экспертная поддержка, 6) интеллектуализация интерфейса.
Интеллектуализация относится как к процессу создания программного средства , так и к процессу взаимодействия пользователя с ППП.
11) Обработка исключений с помощью библиотеки mfc.
Для обработки исключений MFC используется класс CException или классы поражденные от него.
12)Обработка сообщений в библиотеке mfc
В литературе по языку C++ иногда проскальзывает такая терминология — методы класса называются сообщениями. Благодаря свойству инкапсуляции "общение" с некоторыми компонентами класса осуществляется только посредством определенных методов. Использование библиотеки классов MFC должно было оказать влияние на структуру программ для Windows, скрыв в классах многочисленные операторы switch или "взломщики" сообщений.
Типы сообщений MFC
В отличие от рассмотренной классификации сообщений, в библиотеке MFC принята несколько иная. Все возможные сообщения разделены на три основные категории:
сообщения Windows (сообщения, которые начинаются с префикса WM_, за исключением WM_COMMAND. Все сообщения этой категории предназначены для обработки окнами и представлениями (view) и часто содержат параметры, которые определяют алгоритм обработки того или иного сообщения. Сюда входят, например, аппаратные сообщения, сообщения обслуживания окна и т. д. );
извещения элементов управления(извещения (notification messages) от элементов управления и других дочерних окон, направляемые своим "родителям". Например, элемент управления LISTVIEW посылает своему родительскому окну сообщение WM_COMMAND, содержащее код извещения LVN_SETDISPINFO, когда требуется обновить информацию об элементах списка. Оконная процедура отвечает на полученное извещение заполнением структуры LV_DISPINFO и передачей ее обратно в элемент управления. Механизм передачи извещений аналогичен другим WМ_-сообщениям, с одним единственным исключением. Извещение BN_CLICKED, посылаемое элементом управления BUTTON, когда пользователь щелкает по нему, трактуется как командное и передается аналогично другим командам. );
Сообщения этих двух категорий предназначены для объектов классов, образованных от базового класса CWnd, т. е. имеющих дескриптор HWND окна Windows. Их обработка осуществляется в соответствующей оконной процедуре.
командные сообщения (команды) (все сообщения WM_COMMAND. называемые командами (или командными сообщениями), от объектов интерфейса пользователя, которые включают меню, кнопки панелей инструментов и командные клавиши (accelerator keys). Обработка команд осуществляется способом, отличающимся от обработки других сообщений, и может производиться множеством объектов, включающим документы, шаблоны документов и сам объект "приложение".).
в MFC для обработки каждого отдельного сообщения используется специальная функция-обработчик. Например, можно иметь одну функцию-обработчик для сообщения WM_PAINT, другую — для сообщения WM_KEYUP и третью — для сообщения WM_LBUTTONDOWN. Все функции-обработчики являются функциями какого-либо класса, и для них используются названия: функция-член обработчик сообщения, функция-обработчик сообщения или просто обработчик сообщения. Принципы работы обработчиков сообщений не изменяются от того, к какой категории относится сообщение, однако механизм их вызова различен. Но прежде чем рассматривать механизмы посылки и получения сообщений, необходимо понять, каким образом сопоставляются сообщение и соответствующий ему обработчик.
Сообщения выбираются из очереди при помощи функции PeekMessage, а работу по поддержке клавиатуры, выбору оконной процедуры и передаче в нее сообщений выполняет недокументированная функция PumpMessage из класса CWinThread.
Основное отличие заключается в наличии специального механизма, позволяющего перехватить у системы циклы фоновой обработки путем вызова переопределяемой функции Onldle класса вашего приложения. Такая возможность появляется, когда приложение принимает сообщения с помощью PeekMessage. Если очередь сообщений пуста, то функция возвращает FALSE. Отметим, что цикл обработки сообщений MFC требует специальной обработки сообщения WMQUIT, поскольку PeekMessage не реагирует на это сообщение так, как это делает функция GetMessage. Эту работу выполняет упомянутая функция PumpMessage.
Классификация сообщений:
□ сообщения Windows,
□ извещения элементов управления,
□ командные сообщения (команды).
В первую категорию входят сообщения, имена которых начинаются с префикса WM_, за исключением WMCOMMAND. Все сообщения этой категории предназначены для обработки окнами и представлениями и часто содержат параметры, которые определяют алгоритм обработки того или иного сообщения.
Вторая категория включает извещения (notification messages) от элементов управления и других дочерних окон, направляемые своим родительским окнам. Механизмы передачи извещений и других WM-сообщений аналогичны, с одним единственным исключением. Извещение BNCLICKED, посылаемое элементом управления BUTTON, когда пользователь щелкает по нему, трактуется как командное сообщение и передается аналогично другим командам.
Сообщения этих двух категорий предназначены для объектов классов, образованных от базового класса CWnd, т. е. имеющих дескриптор HWND окна Windows. Их обработка осуществляется в соответствующей оконной процедуре.
Третья категория охватывает все сообщения WMCOMMAND, называемые командами (или командными сообщениями), от объектов интерфейса пользователя, который включает меню, кнопки панелей инструментов и клавиши-акселераторы. Обработка команд отличается от обработки других сообщений и может производиться множеством объектов, включающим документы, шаблоны документов и сам объект "приложение".
Для обработки каждого отдельного сообщения используется специальная функция-обработчик. Все функции-обработчики являются функциями какого-либо класса, и для них используются названия: функция-член обработчик сообщения, функция обработчик сообщения или просто обработчик сообщения} Принципы работы обработчиков сообщений не изменяются от того, к какой категории относится сообщение, однако механизмы их вызова различны.
Карта сообщений.
Взаимосвязь сообщений и их обработчиков может быть определена таким образом, что когда сообщение поступает в оконную процедуру, автоматически вызывается соответствующий обработчик. Реализация такой взаимосвязи основана на понятии карты сообщений (message map).
Карта сообщений представляет собой механизм пересылки сообщений и команд Windows в окна, документы, представления и другие объекты приложения, реализованного на базе MFC. Такие карты преобразуют сообщения Windows, извещения элементов управления, а также команды меню, кнопок панелей инструментов, акселераторов клавиатуры в функции соответствующих классов, которые их обрабатывают. Каждый класс, который может получить сообщение, должен иметь свою карту сообщений, для того, чтобы иметь возможность соответствующим образом обрабатывать сообщения. При этом следует иметь в виду, что карта сообщений должна определяться вне какой-либо функции или объявления класса. Она также не может размещаться внутри С-блока.
Для определения карты сообщений необходимо использовать три макроса: BEGIN_MESSAGE_MAP, END_MESSAGE_MAP и DECLARE_MESSAGE_MAP.