Вопрос 2. Механизм сообщений в ОС Windows : назначение, принципы функционирования, структура сообщения, программные приемы обработки сообщений. Пример программы, выводящей в окне слово «ТЕСТ - ОК» при щелчке правой клавиши мыши, если нажаты на клавиатуре
Добавил: | DMT |
Дата создания: | 30 декабря 2007, 18:55 |
Дата обновления: | 9 января 2008, 23:29 |
Просмотров: | 15803 последний позавчера, 22:57 |
Комментариев: | 1 |
Вопрос 2. Механизм сообщений в ОС Windows : назначение, принципы функционирования, структура сообщения, программные приемы обработки сообщений. Пример программы, выводящей в окне слово «ТЕСТ – ОК» при щелчке правой клавиши мыши, если нажаты на клавиатуре клавиши Ctrl + Shift + Alt . Windows основана на передаче сообщений ( message ). В основе системы лежит механизм, транслирующий практически каждое событие в сообщение. Типичное приложение построено на основе цикла сообщении , который принимает эти сообщения и отправляет их к соответствующим функциям — обработчикам сообщений. Хотя сообщения передаются приложениям, они адресованы окнам, представляющим некую абстрактную сущность, через которую взаимодействуют пользователь и приложение. Передача сообщений - это способ, при помощи которого в Windows организован обмен информацией между отдельными подсистемами, приложениями или между отдельными модулями одного и того же приложения. Каждое Windows-приложение построено на основе цикла сообщений. Цикл сообщении повторно вызывает функции GetMessage или PeekMessage и получает сообщения, которые затем передает оконной процедуре через функцию DispatchMessage . Сообщение представляет собой структуру данных: typedef struct tagMSG { HWND hwnd ; //адресат (идентификатор получателя) сообщения UINT message ; //уникальный код сообщения WPARAM wParam ; //содержимое сообщения wParam LPARAM lParam ; //содержимое сообщения lParam DWORD time ; //время отправления POINT pt ; //информация о координатах } MSGMSG ;
Сообщения могут быть отправлены или посланы приложению. Отправленные сообщения помещаются в очередь сообщений, из которой функции GetMessage или PeekMessage получают эти сообщения. В п po тивоположность этому посылка сообщения означает немедленный вызов оконной процедуры, обходя очередь сообщений и цикл сообщений. Приложение может иметь несколько циклов сообщений в зависимости от его требований. И хотя всегда можно обойтись одним цик-юм сообщений, несколько циклов помогут разработать лучше организованный и более удобный для последующих изменений программный код. Windows содержит в себе системную очередь сообщений, куда последние могут поступать от драйверов устройств ввода/вывода или от приложений, а также несколько очередей сообщений для каждого приложения. Идентификаторы сообщений задаются в заголовочных файлах Windows . Сообщения представляются каждым простым событием, каждое простое действие посылается окну для обработки. Вместо обработки всех возможных сообщений приложение имеет свободу выбора; необработанные сообщения передаются в функции обработки сообщений операционной системы по умолчанию. Уникальный идентификатор сообщения можно получить вызовом функции RegisterWindowMessage . Использование собственных типов сообщений позволяет частям приложения связываться между собой; разные приложения также могут обмениваться информацией таким способом. По мере генерации приложениями, сообщения попадают вначале в общую системную очередь и затем распределяются в очереди отдельных приложений. Действие, выполненное над любым органом управления, приводит к генерации соответствующего сообщения и помещения этого сообщения в очередь приложения. Приложение Windows постоянно анализирует содержимое своей очереди сообщений. Когда в очереди появляется сообщение от какого-либо органа управления, приложение выполняет соответствующее действие. В очередь сообщений приложения Windows заносит сообщение, содержащее идентификатор использованного органа управления. Приложение анализирует очередь сообщений и выполняет обработку сообщений. В Windows используется многоуровневая система сообщений. Сообщения низкого уровня вырабатываются передаются операционной системе Windows, которая на их основе формирует сообщения более высокого уровня. Операционная система Windows направляет сообщение от использованного органа управления в очередь того приложения, к которому принадлежит данный орган управления. Каждое приложение занимается обработкой своей очереди сообщений, а Windows заботится о том, чтобы все сообщения попадали в нужную очередь. Так как все приложения используют совместно общий экран видеомонитора, работая каждое в своем окне, Windows обеспечивает обработку ситуаций, при которых одно окно перекрывает другое.
Пример программы, выводящей в окне слово «ТЕСТ – ОК» при щелчке правой клавиши мыши, если нажаты на клавиатуре клавиши Ctrl + Shift + Alt .
|

Комментарии для "Вопрос 2. Механизм сообщений в ОС Windows : назначение, принципы функционирования, структура сообщения, программные приемы обработки сообщений. Пример программы, выводящей в окне слово «ТЕСТ - ОК» при щелчке правой клавиши мыши, если нажаты на клавиатуре "
Пользователь: DMT Сообщений: 123 Статус: Программист Зарегистрирован: 18 октября 2007, 2:35 Был:13 ноября 2017, 4:54 ![]() ![]() ![]() | Дата: 1 января 2008, 15:29 Сообщение № 1 |
Вот собственно программу написал, старалса ![]()
|