Chertenok.ru - все о программировании
Вход  |  Регистрация  |  Поиск 
Праздник
Завтра :

День славянской письменности и культуры


Помогите разобратся !!!


Новая тема  Ответить  Печать Предыдущая тема  Следующая тема
Автор Сообщение
_XMishaX_
Гость







СообщениеСб, 09-Авг-2008 14:20    Заголовок сообщения: Помогите разобратся !!!
Цитата

Немогу понять цикл обработки сообщений, который выглядит следующим образом:

while GetMessage(pMsg,0,0,0) do
begin
TranslateMessage(pMsg);
DispatchMessage(pMsg);
end;

Ну я догадываюсь что функция GetMessage(pMsg,0,0,0) принимает сообщение, а вот осталные функции...
В начало
Пол:Муж TuXAPuK
Великий гонщик

Предупреждений : 1
Возраст: 26
Знак зодиака: Рыбы
Зарегистрирован: 12.09.2005
Сообщения: 714
Откуда: Великий город Рига... =Ъ
СообщениеВс, 10-Авг-2008 1:13 
Цитата

Этот код зацикливает программу, не расходуя процессорное время...

Вспоминаем Task Manager и System Idle Process... То-есть в отличии от while (true) do; Программа перестаёт нагло жрать процессорное время так как фактически вечно ожидает сообщение от ОС...

Где в GetMessage
Первый параметр = сама структура сообщения
Второй параметр = от какого окна ожидать сообщение (0 = От всех видимых и не видимых окон программы)
Третий, Четвёртый = Какой диапазон сообщений ожидает программа (если 0,0 то все сообщения принимаются можно так-же использовать 0, WORD($FFFFFFFF) )


Далее идёт TranslateMessage которая как-бы конвертирует сообщение

И заключает этот круг DispatchMessage которая передаёт сообщение далее по программе...

Фактически вечное чтение всех сообщений от всех окон и передачи его далее по цепочке...

При ShutdownWindows GetMessage возвращает false и зацикливание прекращается, далее твоя программа отключает свои классы, окна, сохраняет свои настройки, и.т.п.

_________________
В начало
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
Показать сообщения:   
Страница 1 из 1
Перейти:  
Новая тема  Ответить  Печать

Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете присоединять файлы в этом форуме
Вы можете скачивать файлы в этом форуме
хостинг от .masterhost 
Rambler's Top100