PeekMessage
The PeekMessage
function checks a thread message queue for a message and places the message (if
any) in the specified structure.
BOOL PeekMessage(
LPMSG lpMsg, |
// pointer to
structure for message |
HWND hWnd, |
// handle to window |
UINT wMsgFilterMin, |
// first message |
UINT wMsgFilterMax, |
// last message |
UINT wRemoveMsg |
// removal flags |
); |
|
Parameters
lpMsg
Points to an MSG
hWnd
Identifies
the window whose messages are to be examined.
wMsgFilterMin
Specifies the
value of the first message in the range of messages to be examined.
wMsgFilterMax
Specifies the
value of the last message in the range of messages to be examined.
wRemoveMsg
Specifies how
messages are handled. This parameter can be one of the following values:
Value |
Meaning |
PM_NOREMOVE |
Messages
are not removed from the queue after processing by PeekMessage. |
PM_REMOVE |
Messages
are removed from the queue after processing by PeekMessage. |
You can optionally combine the value PM_NOYIELD with either PM_NOREMOVE
or PM_REMOVE. However, PM_NOYIELD has no effect on 32-bit Windows applications.
It is defined in Win32 solely to provide compatibility with applications
written for previous versions of Windows, where it was used to prevent the
current task from halting and yielding system resources to another task. 32-bit
Windows applications always run simultaneously.
Return Values
If a message
is available, the return value is nonzero.
If no messages
are available, the return value is zero.
Remarks
Unlike the GetMessage
PeekMessage retrieves only messages associated with the window
identified by the hWnd parameter or any of its children as specified by
the IsChild
function, and within the range of message values given by the wMsgFilterMin
and wMsgFilterMax parameters. If hWnd is NULL, PeekMessage
retrieves messages for any window that belongs to the current thread making the
call. (PeekMessage does not retrieve messages for windows that belong to
other threads.) If hWnd is -1, PeekMessage only returns messages with a hWnd value of
NULL, as posted by the PostAppMessage
The
WM_KEYFIRST and WM_KEYLAST constants can be used as filter values to retrieve
all keyboard messages; the WM_MOUSEFIRST and WM_MOUSELAST constants can be used
to retrieve all mouse messages.
The PeekMessage
function normally does not remove WM_PAINT messages from the queue. WM_PAINT
messages remain in the queue until they are processed. However, if a WM_PAINT
message has a null update region, PeekMessage does remove it from the
queue.
See Also