ВУЗ:
Составители:
Рубрика:
- 11 -
DWORD time;
POINT pt;
} MSG;
Первый элемент приведенной структуры указывает на окно, которому
предназначено сообщение (каждому окну присвоен уникальный номер - han-
dle, идентифицирующий окно в течение сеанса работы в WINDOWS). Второй
элемент сообщения - идентификатор сообщения (начинающийся с символов
WM_ идентификатор, см. файл WINDOWS.H). Третий и четвертый элемен-
ты (wParam и IParam) несут дополнительную информацию. В элементе time
содержится время помещения события в очередь, в pt - координаты 'мыши' в
этот момент.
Если сообщение порождено входным событием, WINDOWS помещает его
в общую для всех прикладных программ системную очередь сообщений. По-
мимо этого каждая прикладная программа имеет свою собственную очередь
сообщений, куда помещаются (минуя системную очередь) сообщения, прямо
адресованные конкретной программе.
Сообщения анализируются в цикле, который имеется в каждой написан-
ной для WINDOWS программе. Ниже даны С- и Pascal-варианты указанного
цикла.
// С - вариант цикла обработки сообщений
MSG msg; // объявление структуры типа MSG
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
{ Pascal - вариант цикла обработки сообщений }
while GetMessage(Message, 0, 0, 0) do
begin
TranslateMessage(Message);
DispatchMessage(Message);
end;
Функция GetMessage ищет (сканируя очередь) сообщение в очереди дан-
ной программы. Если сообщений не найдено, анализируется системная оче-
редь, где распознаются поступившие от клавиатуры или 'мыши' сообщения;
если таковых не оказалось, прикладная программа 'засыпает'. Функция Get-
Message приостанавливает выполнение программы до тех пор, пока в оче-
редь сообщений данной программы поступит
какое-либо сообщение, далее
поступившее первым сообщение извлекается и выполнение программы во-
зобновляется.
Функция GetMessage возвращает значение FALSE, если получено сооб-
- 11 - DWORD time; POINT pt; } MSG; Первый элемент приведенной структуры указывает на окно, которому предназначено сообщение (каждому окну присвоен уникальный номер - han- dle, идентифицирующий окно в течение сеанса работы в WINDOWS). Второй элемент сообщения - идентификатор сообщения (начинающийся с символов WM_ идентификатор, см. файл WINDOWS.H). Третий и четвертый элемен- ты (wParam и IParam) несут дополнительную информацию. В элементе time содержится время помещения события в очередь, в pt - координаты 'мыши' в этот момент. Если сообщение порождено входным событием, WINDOWS помещает его в общую для всех прикладных программ системную очередь сообщений. По- мимо этого каждая прикладная программа имеет свою собственную очередь сообщений, куда помещаются (минуя системную очередь) сообщения, прямо адресованные конкретной программе. Сообщения анализируются в цикле, который имеется в каждой написан- ной для WINDOWS программе. Ниже даны С- и Pascal-варианты указанного цикла. // С - вариант цикла обработки сообщений MSG msg; // объявление структуры типа MSG while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } { Pascal - вариант цикла обработки сообщений } while GetMessage(Message, 0, 0, 0) do begin TranslateMessage(Message); DispatchMessage(Message); end; Функция GetMessage ищет (сканируя очередь) сообщение в очереди дан- ной программы. Если сообщений не найдено, анализируется системная оче- редь, где распознаются поступившие от клавиатуры или 'мыши' сообщения; если таковых не оказалось, прикладная программа 'засыпает'. Функция Get- Message приостанавливает выполнение программы до тех пор, пока в оче- редь сообщений данной программы поступит какое-либо сообщение, далее поступившее первым сообщение извлекается и выполнение программы во- зобновляется. Функция GetMessage возвращает значение FALSE, если получено сооб-
Страницы
- « первая
- ‹ предыдущая
- …
- 9
- 10
- 11
- 12
- 13
- …
- следующая ›
- последняя »