PeekMessage

Функции PeekMessage проверяет очереди сообщений потока для сообщения и помещает сообщение (если таковой имеется) в указанной структуре.

(BOOL PeekMessage LPMSG  lpMsg, / / указатель на структуру для сообщенияHWNDhWnd, / / дескриптор окнаUINTwMsgFilterMin, / / сначала сообщениеUINTwMsgFilterMax, / / Последнее сообщениеUINTwRemoveMsg / / удаления флагов);
 

Параметры

lpMsg
Указатель на структуру MSG , которая получает сведения о сообщении.
hWnd
Дескриптор окна, чьи сообщения должны быть изучены.
wMsgFilterMin
Указывает значение первого сообщения в диапазоне сообщений для рассмотрения.
wMsgFilterMax
Указывает значение последнего сообщения в диапазоне сообщений для рассмотрения.
wRemoveMsg
Определяет способ обработки сообщений. Этот параметр может принимать одно из следующих значений:
Значение Значение
PM_NOREMOVE Сообщения не удаляются из очереди после обработки, PeekMessage.
PM_REMOVE Сообщения удаляются из очереди после обработки PeekMessage.

При желании вы можете объединить значение PM_NOYIELD с PM_NOREMOVE или PM_REMOVE. Этот флаг запрещает системе выпускать любой поток, который ожидает вызывающий простой (см. WaitForInputIdle).

По умолчанию обрабатываются все типы сообщений. Обработке только определенные сообщения, задайте одно или несколько из следующих значений:
Значение Значение
PM_QS_INPUT Windows NT 5.0 и Windows 98: Обработка сообщений клавиатуры и мыши.
PM_QS_PAINT Windows NT 5.0 и Windows 98: Процесс краска сообщения.
PM_QS_POSTMESSAGE Windows NT 5.0 и Windows 98: Процесс все написал сообщений, включая таймеры и горячие клавиши.
PM_QS_SENDMESSAGE Windows NT 5.0 и Windows 98: Обработка всех Отправлено сообщений.

Возвращаемые значения

Если сообщение, возвращаемое значение не равно нулю.

Если сообщения не доступны, возвращаемое значение равно нулю.

Примечания

В отличие от функции GetMessage функцию PeekMessage не ожидает сообщение помещается в очередь перед возвращением.

PeekMessage извлекает только сообщения, связанные с окном, определенных параметром hWnd или любого из его детей, как указано, функция IsChild , а также в пределах сообщения значений, указанных в параметрах wMsgFilterMin и wMsgFilterMax . Если hWnd равно NULL, PeekMessage извлекает сообщения для любого окна, которому принадлежит текущий поток, вызов. (PeekMessage не извлекает сообщения для windows, которые принадлежат к другим потокам). Если hWnd является –1, PeekMessage возвращает только сообщения с hWnd значение NULL, как написал PostThreadMessage функции. Если wMsgFilterMin и wMsgFilterMax являются нулевой, PeekMessage возвращает все доступные сообщения (то есть, диапазон фильтрация не выполняется).

Константы WM_KEYFIRST и WM_KEYLAST могут использоваться в качестве значения фильтра для извлечения всех сообщений клавиатуры; константы WM_MOUSEFIRST и WM_MOUSELAST может использоваться для извлечения всех сообщений мыши.

Функцию PeekMessage обычно не удаляет сообщения WM_PAINT из очереди. WM_PAINT сообщения остаются в очереди до тех пор, пока их обработки. Однако если сообщение WM_PAINT области null обновления, PeekMessage удалить его из очереди.

Windows CE: Сообщения WM_PAINT с областью пустой обновления не удаляются из очереди.

QuickInfo

nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Требует версии 1.0 или более поздней версии.
Заголовок:Объявленные в winuser.h.
Импорта библиотеки:Используйте user32.lib.
Юникод:В версии Юникода и ANSI в Windows NT.

Родственные слова

Обзор очереди сообщений и сообщений, сообщений и функции очереди сообщений, GetMessage, IsChild, MSG, WaitForInputIdle, WaitMessage

Index