Функция GetMessage получает сообщение из очереди сообщений потока вызывающего и помещает его в указанной структуры. Эта функция может получить оба сообщения, связанные с указанным окном и поток сообщений, опубликованного с помощью PostThreadMessage функции. Функция извлекает сообщения, которые находятся в пределах указанного диапазона значения сообщений. GetMessage не извлекает сообщения для windows, которые принадлежат другие потоки и приложения.
(BOOL GetMessage LPMSG lpMsg, / / адрес структуры с сообщениемHWNDhWnd, / / обработать окнаUINTwMsgFilterMin, / / сначала сообщениеUINTwMsgFilterMax / / Последнее сообщение);
Значение | Значение |
---|---|
ЗНАЧЕНИЕ NULL | GetMessage извлекает сообщения для любого окна, которому принадлежит к вызывающему потоку и поток сообщений, размещенных в вызывающий поток через PostThreadMessage. |
Если функция извлекает сообщение за исключением WM_QUIT, возвращаемое значение не равно нулю.
Если функция извлекает WM_QUIT сообщение, возвращаемое значение равно нулю.
Если есть ошибки, возвращаемое значение равно -1. Например функция не работает, если hWnd является дескриптор недействительным окна или lpMsg является неверный указатель. Чтобы получить расширенные сведения об ошибке, вызовите GetLastError.
Приложение обычно использует значение, возвращаемое для определения необходимости положить конец основной цикл обработки сообщений и выйти из программы.
Функции GetMessage только извлекает сообщения, связанные с окном, определенных параметром hWnd или любого из его детей, как указано, функция IsChild , а также в пределах сообщения значений, указанных в параметрах wMsgFilterMin и wMsgFilterMax . Если hWnd равно NULL, GetMessage извлекает сообщения для любого окна, которому принадлежит к вызывающему потоку и поток сообщений, размещенных в вызывающий поток через PostThreadMessage. GetMessage не извлекает сообщения для windows, которые принадлежат к другим потокам, ни для потоков, не вызывающий поток, даже если hWnd не равно NULL. Поток сообщений, написал PostThreadMessage функции, имеют значение hWnd сообщения NULL. Если wMsgFilterMin и wMsgFilterMax являются нулевой, GetMessage возвращает все доступные сообщения (то есть, диапазон фильтрация не выполняется).
Константы WM_KEYFIRST и WM_KEYLAST могут использоваться в качестве значения фильтра для извлечения всех сообщений, связанных с ввода с клавиатуры; константы WM_MOUSEFIRST и WM_MOUSELAST может использоваться для извлечения всех сообщений мыши. Если параметры wMsgFilterMin и wMsgFilterMax оба нулю, функция GetMessage возвращает все доступные сообщения (не выполняя любые фильтрация).
GetMessage не удаляются из очереди сообщения WM_PAINT. Сообщения остаются в очереди до обработки.
Обратите внимание, что возвращаемое значение функции может быть не равен нулю, 0 или -1. Таким образом вам следует избегать подобный код:
во время (GetMessage (lpMsg, hWnd, 0, 0))...
Возможность возвращаемое значение-1 означает, что такой код может привести к неустранимой ошибки.
nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Требует версии 1.0 или более поздней версии.
Заголовок:Объявленные в winuser.h.
Импорта библиотеки:Используйте user32.lib.
Юникод:В версии Юникода и ANSI в Windows NT.
Обзор очереди сообщений и сообщений, сообщений и функции очереди сообщений, IsChild, MSG PeekMessage PostMessage, PostThreadMessage, WaitMessage