C++ C++ C# C# ASP.NET Security ASP.NET Security ASM ASM Скачать Скачать Поиск Поиск Хостинг Хостинг  
  Программа для работы с LPT портом...
Язык: .NET — ©Alexey...
  "ASP.NET Atlas" – AJAX в исполнении Micro...
Язык: .NET — ©legigor@mail.ru...
  "Невытесняющая" Многопоточность...
Язык: C/C++ — ©...
  Update World C++: Сборник GPL QT исходников
  Весь сайт целиком можно загрузить по ссылкам из раздела Скачать
Нетология

 54 - DispatchMessage() / Win 32 API / Win32 API

Шаг 54 - DispatchMessage()

Эта функция пересылает сообщение оконной процедуре.

LRESULT DispatchMessage
(  
	CONST MSG *lpmsg	// указатель на структуру с сообщением
);

Возвращаемое значение является тем, которое вернет оконная процедура. Но обычно это значение игнорируется. Откуда берется оконная процедура ??? Она есть в параметрах, то есть не сама процедура, а указатель на окно (HWND). Если указатель HWND_TOPMOST, то сообщение будет переслано всем окнам верхнего уровня. А если NULL, то вообще ничего не будет делаться. Эта функция нужна только один раз, даже если у вас в приложении много окон, она будет рассылать сообщения по окнам в соответствии со структурой MSG. Теперь мы можем нарисовать общую схему прохождения сообщений:

54.gif (6816 b)

Итак, мы получаем сообщение. Проверяем не конец ли это работы, т.е. WM_QUIT. Если нет, то отдаем сообщение в TranslateMessage(), чтобы получить сообщения от клавиатуры более высокого уровня. После этого перенаправляем сообщение в оконную процедуру на основе HWND указанного в самом сообщении DispatchMessage. Цикл должен быть один для одного потока.


| |
Автор Каев Артем.
[AD]





Letyshops [lifetime]