7. Структура MSG. Обработка сообщений (Ответы на вопросы билетов)
Описание файла
Файл "7. Структура MSG. Обработка сообщений" внутри архива находится в следующих папках: Ответы на вопросы билетов, WinAPI - Ответы на вопросы билетов. PDF-файл из архива "Ответы на вопросы билетов", который расположен в категории "". Всё это находится в предмете "api windows" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "api windows" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
1.Структура MSG. Обработка сообщений.Для временного хранения сообщений в Windows используется структура типа MSG.Переменная этого типа, в частности, используется в цикле обработки сообщения (здесь сообщенийхранится до окончания обработки).В файле windows.h структура MSG описана следующим образом:typedef struct tagMSG{HWNDhwnd;UINTmessage;WPARAM wParam;LPARAM lParam;DWORD time;POINT pt;} MSG;////////////Дескриптор приложения, которому отправлено сообщениеНомер (идентификатор) сообщения (какое сообщение послано)Информационные поля содержат информацию. Какое событие произошлоВремя от запуска ОС до постановки в системную очередь сообщенияУказатель на структуру с двумя полями x, y – координаты мышиОбработка сообщенийВ Windows-приложении для обработки сообщений создается специальная функция:LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam){ // Идентификатор сообщения передается через параметр msgwParam и lParam –информационные поля сообщения.switch (msg){case WM_DESTROY:{ // Инициируем завершение работы приложения, помещая в очередь приложениясообщение WM_QUIT.
Это приведет к завершению цикла обработки сообщений в функции WinMainPostQuitMessage(0);return 0;}default:DefWindowProc(hwnd, msg, wParam, lParam);// Все сообщения, которые не обрабатываются нашей функцией окна, ДОЛЖНЫпередаваться функции DefWindowProc}}LRESULT – функция возвращает двойное слово.CALLBACK – модификатор функции обратного вызова {передача исполняемого кода в качествеодного из параметров другого кода. Обратный вызов позволяет в функции исполнять код, который задаётся варгументах при её вызове}Функция WndProc НЕ ВЫЗЫВАЕТСЯ ни из одной функции приложения.
Эту функциювызывает Windows в процессе обработки сообщений. Для этого адрес функции WndProcуказывается при регистрации класса окна. Функция выполняет обработку сообщений главногоокна приложения.В Windows также происходит обработка сообщений собственными обработчиками сообщенийWindows по умолчанию..