Классификация сообщений в mfc




Скачать 461,72 Kb.
НазваниеКлассификация сообщений в mfc
страница1/4
Дата публикации21.11.2013
Размер461,72 Kb.
ТипДокументы
pochit.ru > Астрономия > Документы
  1   2   3   4

  1. Классификация сообщений в MFC

  2. Ввод с клавиатуры

  3. Ввод с устройства мышь

  4. Программирование таймера.

  5. Кодировка символов, сообщений.

  6. Виртуальная клавиатура.

  7. Классы приложения.

  8. Класс представления данных

  9. Класс отображения данных

  10. Обработка сообщений.

  11. Сериализация.

  12. Общие сведения

  13. Контекст устройства. Атрибуты контекста устройства.

  14. Системы координат при выводе на графические устройства.

  15. Логическая система координат.

  16. Соответствие между логической и физической системами координат

  17. Обьекты GDI. Классификация, создание и использование.

  18. Шрифты, общие сведения.

  19. Шрифты. Создание, использование. Метрика шрифта.

  20. Общие сведения.

  21. Описание ресурсов.

  22. Графические ресурсы. Создание, загрузка и использование.

  23. Меню. Создание, назначение клавиш.

  24. Символьные строки. Создание, использование.

  25. Общие сведения, шаблон диалога.

  26. Класс диалогово окна. Создание и инициализация.

  27. Обработка сообщений в диалоге

  28. Работа с полем ввода.

  29. Работа со списком.

  30. Работа с кнопками.

  31. Контроль вводимых данных.

  32. Общие сведения.

  33. Библиотеки импортирования, согласование интерфейсов.

  34. Загрузка неявно подключаемой библиотеки.

  35. Динамическая загрузка dll.

  36. Создание расширенной dll.

  37. Создание регулярной dll.

  38. Файл определения модуля.

  39. Функция DllMain().

  40. Файл определения модуля.

  41. Общие сведения.

  42. Создание процессов, управление процессами.

  43. Создание процессов на базе MFC.

  44. Создание потоков, управление потоками

  45. Создание потоков на базе MFC.

  46. Синхронизация потоков на базе MFC.

  47. Классы синхронизации.

  48. Структура виртуальной памяти. Основные понятия и принципы виртуализации памяти.

  49. Страничная организация виртуальной памяти.

  50. Управление страничной памятью.

  51. Сегментная организация виртуальной памяти.

  52. Файловая система. Концепция управления файлами.

  53. Внешняя память на дисках.

  54. Файловая система FAT.

  55. Структура и расположение системной информации файловой системы FAT.




  1. Классификация сообщений в MFC

В библиотеке MFC принята классификация сообщений отличная от общей классификации в системе Win. Все возможные сообщения разделены на 3 категории: - сообщения Windows; - извещения элементов управления; - командные сообщения.

^ Сообщения Windows: это сообщ, кот начинаются с WM_ за искл WM_COMMAND. Данные сообщ обраб-ются оконными объектами базового класса CWindow(CWnd), он вкл стандартную обработку сообщ. Эти сообщения часто содержат параметры, кот определяют алгоритм обработки того или иного сообщения. Сюда входят, напр, аппаратные сообщения, сообщения обслуживания окон и т. д.

Вторая категория вкл извещения (notification messages) от эл-тов управления и др дочерних окон, направляемые своим родительским окнам. Сообщ этой категории предназначены для объектов классов, производных от CWnd, их обработка осущ в соответствующей оконной ф-ции(процедуре).

Третья категория охватывает все сообщения WM_COMMAND, наз командами от объектов интерфейса пользователя, кот включает меню, кнопки панелей инструментов и акселераторы. Обработка команд отличается от обработки др сообщ и м производиться множеством объектов(документы, шаблоны документов и сом объект «приложение»).

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

  1. Ввод с клавиатуры



Клавиатура – аппаратное устройство. Бывают простые и системные сообщения от клавы.

При обработке сообщений от клавиатуры различаются следующие события:

OnKeyDown – нажата несистемная клавиша на клавиатуре.

OnKeyUp – отпущена несистемная клавиша на клавиатуре.

OnSysKeyDown – нажата системная клавиша на клавиатуре.

OnSysKeyUp – отпущена системная клавиша на клавиатуре.

OnChar – нажата алфавитно-цифровая клавиша на клавиатуре.

Функция OnKeyDown имеет три параметра: первый отвечает за виртуальный код клавиши, второй– за количество повторений, третий содержит набор битовых полей (OEM, ALT и т.д.).

Системные события связаны с нажатием клавиши ALT в комбинации с другой клавишей.

  1. Ввод с устройства мышь

Обработка сообщений мыши осуществляется в обработчиках аналогичных Windows API, только теперь эти обработчики имеют вид функций.

Для определения состояния мыши существует следующие макроопределения:

#define MK_LBUTTON 0x0001

#define MK_RBUTTON 0x0002

#define MK_SHIFT 0x0004

#define MK_CONTROL 0x0008

#define MK_MBUTTON 0x0010

Координаты мыши приходят в составе параметров каждого обработчика сообщений мыши в виде полей класса CPoint.

Управление курсорами мыши очень похоже на те же операции в Windows API:

SetCursor(LoadCursor(NULL,IDC_WAIT));

Сообщения неклиентной области отличаются от сообщений клиентной области окна только тем, что перед сообщениями неклиентной ставится префикс Nc.

OnNcMouseMove(UINT nHitTest, CPoint point)

  1. Программирование таймера.

Установка таймера производится с помощью функции SetTimer, а снятие – KillTimer. Обе функции очень похожи на аналогичные в Windows API, однако отличаются от них по количеству принимаемых параметров.

Управление таймером в MFC осуществляется как и в Windows API через функцию SetTimer. (m_Timer=SetTimer(1,2000,NULL))

  1. Кодировка символов, сообщений.

Номер клавиши, посылаемый клавиатурным процессором, однозначно зависит от схемы клавиатурной матрицы, но не от обозначений, нанесенных на поверхность клавиш. Этот номер называется скан-кодом (Scan Code).

Windows предоставляет второй набор символов, называемый набором символов OEM. Обычно это набор символов, используемый DOS для отображения информации на экране. Символы набора OEM, имеющие значения от 32 до 127, обычно идентичны соответствующим 128 символам набора U.S. ANSI, которые также находятся в наборе символов ANSI. Остальные символы набора (от 0 до 31 и от 128 до 255) соответствуют символам, которые могут отображаться на экране при работе в DOS и обычно отличаются от символов ANSI.

Обычно программе нужен не порядковый номер нажатой клавиши, а код, соответствующий обозначению на этой клавише (код ASCII).

Код ASCII не связан напрямую со скан-кодом, так как одной и той же клавише могут соответствовать несколько значений кода ASCII в зависимости от состояния других клавиш. Например, клавиша с обозначением «1» используется еще и для ввода символа «!» (если она была нажата вместе с клавишей ).

Поэтому все преобразования скан-кода в код ASCII выполняются программно. Как правило, в операционной системе MS-DOS эти преобразования выполняют модули BIOS. Для использования символов кириллицы эти модули расширяются клавиатурными драйверами, как входящими в состав локализованных версий MS-DOS, так и созданными в виде отдельных программ.

  1. Виртуальная клавиатура.

Каждый раз, когда пользователь нажимает клавишу на клавиатуре, Windows генерирует сообщение виртуальной клавиши. Сообщение виртуальной клавиши содержит код виртуальной клавиши, который определяет, какая клавиша была нажата, но не определяет символьное значение этой клавиши. Для того, чтобы получить символьное значение этой клавиши, основная функция должна преобразовать значение виртуальной клавиши, используя функцию TranslateMessage. Эта функция помещает другое сообщение с соответствующим символьным значением в очередь прикладной программы. Это сообщение затем может быть отправлено функции окна.

  1. Классы приложения.



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

  1. Класс представления данных



Этот класс представляет базовые функциональные возможности для всех классов представлений, которые есть в библиотеке или определяются пользователем. Основные функции:

CView:: CView();

CDocument* CView:: GetDocument(); -- получает указатель на объект (документ), присоединенный к этому представлению.

virtual void CView::OnDraw(CDC* pDC)=0 – чисто виртуальная функция, которая используется для изображения образа документа.

  1. Класс отображения данных



Этот класс представляет базовые функциональные возможности для классов документов, определенных пользователем. Он поддерживает все стандартные операции, такие как создание документа, его загрузка и сохранение. Объекты этого класса являются частью стандартного маршрута команд и поэтому получают команды от стандартных компонентов пользователя. Документ получает команды раньше активного представления и если сам не обрабатывает некоторую команду, то передает ее на обработку своему шаблону.

10.Обработка сообщений.

Класс CСmdTarget выступает в кач базового для всех классов, кот м работать с сообщениями. Библиотека классов MFC предоставляет альтернативу многочисленным операторам switch, используемым в традиционных Win-пр-ммах, для обработки сообщений, посылаемых окну. Взаимосвязь сообщений и их обработчиков м.б определена т.о, что когда сообщение поступает в оконную пр-ру, автоматически вызывается соответств обработчик. Реализация т связи основана на понятии карты сообщений.

Очень важна иерархия классов. Заглянув в исходный код MFC-классов, м увидеть в таблице сообщений мн-тво эл-тов ON_COMMAND. При создании производного класса от одного из этих базовых классов, напр, от CView, производный класс наследует все ф-ции таблицы сообщений CView, включая ф-ции-обработчики командных сообщений. Чтобы переопределить какую-то ф-цию таблицы сообщений базового класса, в производный класс надо добавить как ф-цию, так и соответствующий эл-нт таблицы сообщений.

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

Для определения карты сообщений необходимо использовать 3 макроса: ^ BEGIN_MESSAGE_MAP, END_MESSAGE_MAP, DECLARE_MESSAGE_MAP.

11.Сериализация.

Это метод, кот позволяет сохранять и восстанавливать объекты классов, созданных на базе классов CObject. Этот метод можно разделить функционально на 2 составляющих.

С одной стороны, наличие определенной виртуальной функции (Serialize) позволяет унифицировать процесс сохранения/восстановления объектов. Для реализации этого процесса следует только переопределить виртуальную функцию, вызов которой по указателю на объект одного из базовых классов приведет к вызову нужной функции.

С другой стороны сериализация поддерживает механизм динамического создания объектов заранее неизвестного типа. Например, приложение должно сохранять и восстанавливать некоторое количество объектов различного типа. Естественно, что для вызове соответствующего конструктора при восстановлении объекта необходимо точно знать тип создаваемого объекта. Механизм сериализации делает это «за программиста», сохраняя необходимую информацию самостоятельно. Единственное, что требуется – все классы сохраняемых и восстанавливаемых объектов должны базироваться на классе CObject и предоставлять системе соответствующую информацию, использую макросы DECLARE_SERIAL и IMPLEMENT_SERIAL при объявлении и в реализации соответственно.

12.Общие сведения.

Настройка параметров графического вывода проводится двумя путями. Одни параметры настраиваются при помощи вызова функций Win32 API или функций членов класса CDC и производных от него, другие – путем замены так называемых графических объектов. Библиотека MFC обеспечивает разработчиков всеми необходимыми классами, которые инкапсулируют соответствующие графические объекты Windows. Кроме того, библиотека имеет в своем составе дополнительные классы, значительно облегчающие решение ряда задач (классы CPoint (объекты этого класса используются для хранения пары координат (x,y)), CRect (для хранения координат прямоугольных областей, обычно левого верхнего и правого нижнего углов), CSize (для хранения размеров, относительного положения или других парных значений), CRectTraker (объекты отображают и обеспечивают интерфейс пользователя для перемещения и изменения размеров прямоугольных объектов)) или унифицирующие работу с графическими объектами как таковыми (CGDiObject). Класс CGDiObject является базовым для всех классов, представляющих и обеспечивающих интерфейс с графическими объектами Windows. Таких объектов 6 – CPen (карандаш), CBrush (кисть), CFont (шрифт), CBitmap (битовый массив), CPallete (палитра), CRgn (регион).

13.Контекст устройства. Атрибуты контекста устройства

Контекст устройства — объект Win, сод инф-цию о параметрах рисования для некот графич устройства. Физически весь графический вывод происходит на конкретное устройство, представленное в системе контекстом, описываемым, в свою очередь, дескриптором. Последний используют в кач-ве параметра все ф-ции графич вывода Win32 API, т.е при этом задействуется объект «контекст устройства». CDC — базовый класс для всех классов, инкапсулирующих контексты устройств Win. Объекты этого класса используются для работы со всем экраном дисплея или с т устройством, как принтер. Кроме того, именно указатель на базовый класс передается в т ф-ции, как, напр, CView::OnDraw, хотя он может фактически указывать на объекты др производных классов контекстов устройств. CPaintDC — объекты этого класса используются только в обработчике события WM_PAINT, генерируемого в ответ на вызов ф-ций UpdateWindow или RedrawWindow. Обработчиком этого сообщ обычно служит переопределяемая ф-ция-член окна CWnd::OnPaint. При создании объекта класса CPaintDC в конструкторе вызывается ф-ция Win32 API BeginPaint, а при разрушении, в деструкторе, — ф-ция EndPaint, обеспечивая тем самым необходимые операции для подготовки и завершения пр-сса графич вывода.CClientDC — объекты этого класса обеспечивают доступ к клиентской части окна. Используется для графического вывода в любой функции, в отличие от объектов класса CPaintDC. При создании объектов класса CClientDC в конструкторе вызывается функция Win32 API GetDC, а при разрушении — функция ReleaseDC, обеспечивая тем самым необходимые операции для подготовки и завершения процесса графического вывода именно и только в клиентскую часть окна. CWindowDC — объекты этого класса обеспечивают доступ ко всему окну. При создании объектов класса CWindowDC в конструкторе вызывается ф-ция Win32 API GetWindowDC, а при разрушении — ф-ция ReleaseDC, обеспечивая тем самым необходимые операции для подготовки и завершения пр-сса графич вывода как в клиентскую, так и в не клиентскую часть окна. CMetaFileDC — объекты этого класса обеспечивают доступ к метафайлам Win. Вызовы ф-ций-членов данного класса записываются в связанном с соответствующим объектом файле. Возможно создание двух типов объектов данного класса. Объекты первого типа поддерживают только ф-ции, осущ исключительно графич вывод. Такие метафайлы явл контекстно-зависимыми, т.к впоследствии м выводить их содержимое только с учетом настроек контекста того устройства, на кот осущ собственно вывод. Метафайлы второго типа (контекстно-независимые) м содержать, в дополнение к ф-циям графич вывода, и ф-ции настройки параметров рисования. Естественно, что инф-ция из т файлов м.б отображена на различных устройствах одинаково. Контекст устройства содержит целый ряд т параметров, обычно их наз атрибутами контекста устройства. Методы имеют лишь те параметры, что определяют существо их действия, а остальные атрибуты для рисования берутся из контекста устройства. При создании контекста устройства его атрибуты устанавливаются по умолчанию. Затем их можно изменять методами класса CDC. Некоторые атрибуты контекста устройств можно задать с помощью сл ф-ций:

SetVeiwportExt(x,y) – установка физических max зн-ний по осям; SetWindowtEx(x,y) – установка логических max зн-ний по осям; SetWindowOrg( int x, int y) – установка нового центра логических координат; SetViewportOrg(int x, int y) – установка нового центра физических координат. Чтобы установить режим отображения контекста устройства, используйте метод SetMapMode(). Текст выводится с использованием текущего шрифта, цвета текста и фона контекста устройства. Цвет текста может быть установлен с помощью метода SetTextColor(), цвет фона устанавливается вызовом метода SetBkColor() и SetBkMode().

14.Системы координат при выводе на графические устройства

Система Windows обеспечивает программиста возможностью создания системы координат. Координаты вывода задаются в логических единицах. Начало системы координат находится в левом верхнем углу области, первая координатная ось (Х) направлена горизонтально слева направо, вторая – Y - вертикально сверху вниз. Единицей измерения является пиксель.

Для настройки системы координат Windows использует два понятия – физическая область вывода, координаты и размеры которой задаются в физических единицах – пикселях, и логическая область вывода, координаты и размеры которой задаются в логических единицах, определяемых режимом рисования. Контекст устройства содержит атрибуты, задающие соответствие между логическими и физическими координатами точки, что позволяет при выводе на графическое устройство произвести преобразование логических координат в физические.
  1   2   3   4

Похожие:

Классификация сообщений в mfc iconУроки литературы в 11 классе
С. А. Есенина. Тексты сообщений предлагаются только слабым учащимся, поэтому в сценарии урока представлены примерные тексты сообщений....
Классификация сообщений в mfc iconИспользование контролируемой коммуникации в международных отношениях 1
Итак, коммуникация есть и там, где наличествует поток сообщений, и там, где существуют отношения при отсутствии реальных сообщений...
Классификация сообщений в mfc icon10. 12. 2005 Вопросник
Базовая эталонная модель открытых систем (osi). Характеристика уровней модели. Основные протоколы уровней. Услуги уровней. Структура...
Классификация сообщений в mfc iconI. Информационные характеристики источников дискретных сообщений
К информационным характеристикам источников сообщений (ИС) относятся: энтропия и производительность ис, количество информации (КИ),...
Классификация сообщений в mfc iconРаспознавание сообщений электронной почты, рассылаемых в целях мошенничества,...
Используют всемирную сеть для охоты на доверчивых пользователей. Масштабы Интернет-мошенничества неуклонно растут, и методы изготовления...
Классификация сообщений в mfc icon1. Классификация доходов бюджетов Российской Федерации
Основным методологическим документом, на основе которого составляются и исполняются бюджеты, является бюджетная классификация
Классификация сообщений в mfc icon1. Классификация доходов бюджетов Российской Федерации
Основным методологическим документом, на основе которого составляются и исполняются бюджеты, является бюджетная классификация
Классификация сообщений в mfc iconКлассификация ЭВМ 1 Классификация ЭВМ по принципу действия
Компьютер – комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных...
Классификация сообщений в mfc iconЭкзаменационные вопросы по курсу “Моделирование систем” Систематизация...
Классификация моделей в зависимости от их взаимоотношения с объектом моделирования
Классификация сообщений в mfc iconТемы рефератов (докладов, сообщений) по обществознанию. Природа человека,...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2019
контакты
pochit.ru
Главная страница