getQueueStatus 函数 (winuser.h)
检索在调用线程的消息队列中找到的消息类型。
语法
DWORD GetQueueStatus(
[in] UINT flags
);
参数
[in] flags
类型: UINT
要为其检查的消息类型。 此参数可使用以下一个或多个值。
值 | 含义 |
---|---|
QS_KEY 0x0001 |
队列中WM_KEYUP、WM_KEYDOWN、WM_SYSKEYUP或WM_SYSKEYDOWN消息。 |
QS_MOUSEMOVE 0x0002 |
队列中WM_MOUSEMOVE消息。 |
QS_MOUSEBUTTON 0x0004 |
鼠标按钮消息 (WM_LBUTTONUP、 WM_RBUTTONDOWN等) 。 |
QS_POSTMESSAGE 0x0008 |
队列中) (此处列出的消息以外的消息。 有关详细信息,请参阅 PostMessage。 无论是否在筛选消息,调用 GetMessage 或 PeekMessage 时,此值都将被清除。 |
QS_TIMER 0x0010 |
队列中WM_TIMER消息。 |
QS_PAINT 0x0020 |
队列中WM_PAINT消息。 |
QS_SENDMESSAGE 0x0040 |
另一个线程或应用程序发送的消息在队列中。 有关详细信息,请参阅 SendMessage。 |
QS_HOTKEY 0x0080 |
队列中WM_HOTKEY消息。 |
QS_ALLPOSTMESSAGE 0x0100 |
队列中) (此处列出的消息以外的消息。 有关详细信息,请参阅 PostMessage。 调用 GetMessage 或 PeekMessage 而不筛选消息时,将清除此值。 |
QS_RAWINPUT 0x0400 |
Windows XP 及更新版本:原始输入消息位于队列中。 有关详细信息,请参阅 原始输入。 |
QS_TOUCH 0x0800 |
Windows 8及更新:触摸输入消息在队列中。 有关详细信息,请参阅 触摸输入。 |
QS_POINTER 0x1000 |
Windows 8及更新:指针输入消息位于队列中。 有关详细信息,请参阅 指针输入。 |
QS_MOUSE (QS_MOUSEMOVE |QS_MOUSEBUTTON) |
) WM_LBUTTONUP、WM_RBUTTONDOWN等 (WM_MOUSEMOVE消息或鼠标按钮消息。 |
QS_INPUT (QS_MOUSE |QS_KEY |QS_RAWINPUT |QS_TOUCH |QS_POINTER) |
输入消息位于队列中。 |
QS_ALLEVENTS (QS_INPUT |QS_POSTMESSAGE |QS_TIMER |QS_PAINT |QS_HOTKEY) |
输入、 WM_TIMER、 WM_PAINT、 WM_HOTKEY或发布的消息在队列中。 |
QS_ALLINPUT (QS_INPUT |QS_POSTMESSAGE |QS_TIMER |QS_PAINT |QS_HOTKEY |QS_SENDMESSAGE) |
任何消息都位于队列中。 |
返回值
类型:DWORD
返回值的高序字指示队列中当前消息的类型。 低序字表示自上次调用 GetQueueStatus、GetMessage 或 PeekMessage 函数以来已添加到队列中且仍在队列中的消息类型。
注解
返回值中存在QS_标志并不能保证对 GetMessage 或 PeekMessage 函数的后续调用将返回消息。 GetMessage 和 PeekMessage 执行一些可能导致消息在内部处理的内部筛选。 因此,应仅将 GetQueueStatus 的返回值视为提示,说明应调用 GetMessage 还是 PeekMessage 。
QS_ALLPOSTMESSAGE和QS_POSTMESSAGE标志在被清除时有所不同。 调用GetMessage 或 PeekMessage 时,无论是否筛选消息,QS_POSTMESSAGE都将被清除。 调用 GetMessage 或 PeekMessage 而不筛选消息时,将清除QS_ALLPOSTMESSAGE, (wMsgFilterMin 和 wMsgFilterMax 为 0) 。 当你多次调用 PeekMessage 以获取不同范围内的消息时,这非常有用。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |
API 集 | 在 Windows 8) 中引入的 ext-ms-win-ntuser-message-l1-1-0 ( |
请参阅
概念性
引用