Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Выбор семейств шрифтов. Прием и передача сообщений Windows. Формат сообщения Windows. Как создаются сообщения Windows. Ответ на сообщение Windows. Цикл обработки сообщений.

Читайте также:
  1. Cоответствующая и несоответствующая любовь
  2. I. Порядок признания работ выполненными, услуг оказанными и оформления актов приемки работ, услуг
  3. I. «КИСЛОТА — КРАХМАЛЫ». Никогда не ешьте углеводную и кислую пищу в один прием.
  4. II. Жалоба Аввакума и Божий ответ
  5. II. Курсы по выбору
  6. II. Порядок приема, перевода и увольнения работников
  7. II. Прием, регистрация, исполнение обращений граждан

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

Структура сообщения в Windows имеет следующий вид:
TMsg = record
hwnd:HWnd;
message: Integer;
wParam:Integer;
lParam:Longint;
time:Longint;
pt:Tpoint;
end;

Поле hwnd содержит 16-разрядный дескриптор окна, в котором возникло сообщение.
В поле message помещается двухбайтный код (тип) сообщения, выделяющий данное сообщение из более чем 120 имеющихся в Windows. Программист также, конечно же, может определять свои собственные сообщения.
Поля wParam и lParam сожержат дополнительную информацию и зависят от типа сообщения. В сообщениях, определяемых пользователем, они могут использоваться для передачи необходимой информации.
В поле time система Windows помещает время в миллисекундах, которое истекло с момента запуска системы до постановки сообщения в очередь.
Поле pl указывает позицию курсора мыши в экранных координатах на момент возникновения события.

Сообщения могут поступать в программу от многочисленных источников:

  1. Пользователь генерирует сообщения, нажимая клавиши на клавиатуре или перемещая мышь и нажимая ее кнопки;
  2. Сама среда Windows может посылать сообщения прикладной программе для уведомления о тех или иных событиях;
  3. Программа может вызвать функции Windows, результатом которых является посылка сообщений программе;
  4. Прикладная программа может посылать сообщение самой себе;
  5. Прикладная программа может посылать сообщения другим прикладным программам;

Столь большое количество возможных сообщений требует наличие стройной системы их обработки.

Схема обработки сообщения.

Схема обработки сообщений достаточна сложна, поэтому рассмотрим ее только на примере работы Windows с клавиатурой и мышью. (см. Рис.2)


Рис.2 Схема обработки сообщений от клавиатуры и мыши.

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

Из системной очереди сообщения распределяются по приложениям. Для каждого приложения Windows организует отдельную очередь сообщений прикладной программы, которая по умолчанию вмещает до восьми сообщений.

В процессе распределения сообщений по приложениям Windows извлекает очередное сообщение из системной очереди, определяет, с каким оно окном связано, и помещает в очередь того приложения, которому принадлежит окно.

Windows допускает выполнение одновременно нескольких приложений, каждое из которых может иметь множество окон. Однако только одно окно в каждый момент времени может получать сообщения от клавиатуры. Принято говорить, что окно это имеет фокус ввода. Фокус ввода может быть изменен, например, с помощью мыши (для этого достаточно щелкнуть мышью в требуемом окне). Приложение, окно которого имеет фокус ввода, называется активным. Сообщения от клавиатуры помещаются в очередь активного приложения. Сообщения от мыши обрабатываются по-другому, они передаются тому приложению, в окне которого находится указатель мыши.

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

 

67. Выбор семейств шрифтов. Доступ к функциям Windows. Использование соглашения о вызовах языка Pascal. Заголовочный файл Windows: WINDOWS.H. Компоненты приложения для Windows.


Дата добавления: 2015-09-03; просмотров: 150 | Нарушение авторских прав


Читайте в этой же книге: Классы map и multimap | Сортировка. | Специальный класс string ( в методичках Белодеда по-другому, поэтому это только для ознакомления и на всякий случай) | Математические функции (math.h). Построение таблицы значений тригонометрических функций. | Интерфейс вызовов функций в Windows | Общие принципы и средства программирования для Windows. Графический интерфейс пользователя. Многозадачная среда. Преимущества ввода посредством очереди. | Преимущества ввода посредством очереди. | Окна в Windows | Элементы интерфейса Windows | Значок (пиктограмма) |
<== предыдущая страница | следующая страница ==>
Выбор семейств шрифтов. Окна сообщений Windows. Окна диалога Windows. Шрифты Windows. Растровые изображения Windows. Перья Windows. Кисти Windows.| Соглашения о вызовах

mybiblioteka.su - 2015-2024 год. (0.007 сек.)