4. Формирование сообщений, примеры. Очереди. (Ответы на вопросы билетов)
Описание файла
Файл "4. Формирование сообщений, примеры. Очереди." внутри архива находится в следующих папках: Ответы на вопросы билетов, WinAPI - Ответы на вопросы билетов. PDF-файл из архива "Ответы на вопросы билетов", который расположен в категории "". Всё это находится в предмете "api windows" из 6 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "к экзамену/зачёту", в предмете "api windows" в общих файлах.
Просмотр PDF-файла онлайн
Текст из PDF
1.Формирование сообщений, примеры. Очереди.Сообщение - это извещение о некотором имевшем место событии, посылаемое системой Windows –они информируют Windows или приложение, что произошло какое-то событие (например, произошлонажатие клавиши). Также сообщение может быть послано или получено от другого пользователя илиWindowsСообщения имеют приоритет: у программных сообщений он выше, чем у аппаратных.В Win принята 2-х ступенчатая очередь обработки сообщений.очередьсообщений WinПрежде всего, сообщения попадают в системную очередь сообщенийWindows.Системная очередь сообщений одна.
{Для обработки сообщенийочередьприложенийсуществует флаг, получается 2 очереди сообщений – обычная и с флагами.}Далее из нее сообщения распределяются в очереди сообщений приложений. Для каждогоприложения создается своя очередь сообщений.Очередь сообщения приложений может пополняться не только из системной очереди. Любоеприложение может послать сообщение любому другому приложение, в том числе и само себе.Данного рода отправка сообщения осуществляется двумя функциями –PostMessage(HWND hwnd (дескриптор, которому посылается сообщение), UINT MESSAGE(номер сообщения), WPARAM wParam, LPARAM lParam); - ставит в очередь приложенияSendMessage(--//--); - вызывает обработчикОсновная работа, которую должно выполнять приложение, заключается в обслуживаниисобственной очереди сообщений.
Обычно приложение в цикле опрашивает свою очередьсообщений (каждая программа должна иметь функцию обработки сообщений). Обнаруживсообщение, приложение с помощью специальной функции из программного интерфейса Windowsраспределяет его нужной функции окна, которая и выполняет обработку сообщения.Примеры сообщений:1. При сообщении WM_LBUTTONDOWN появляется диалоговая панель с кнопкой ОК.case WM_LBUTTONDOWN:{MessageBox(NULL,"Нажата левая клавиша мыши", "Сообщение", MB_OK);return 0;}2. Инициируем завершение работы приложения, помещая в очередь приложения сообщениеWM_QUIT. Это приведет к завершению цикла обработки сообщений в функции WinMaincase WM_DESTROY:{PostQuitMessage(0);return 0;}.