Разработка прикладных программ для ОС WINDOWS с помощью интегрированных сред Delphi / C++Builder. Баканов В.М. - 11 стр.

UptoLike

Составители: 

- 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, если получено сооб-