GetQueueStatus()函数

函数功能:该函数返回表示调用线程消息队列里的消息的类型的标志。

参数:

flags:表示消息类型的队列状态标志。此参数可为下列值的组合:

QS_ALLEVENTS:输入,WM_TIMER, WM_PAINT,WM_HOTKEY或寄送的消息在队列里。

QS_ALLINPUT:任何消息在队列里。

QS_ALLPOSTMESSAGE:寄送的消息(而不是其他所列消息)在队列里。

QS_HOTKEY:一条WM_HOTKEY消息在队列里。QS_INPUT:输入消息在队列里。

QS_KEY:一条WM_KEYUP WM_KEYDOWN,WM_SYSKEYUP或WM_SYSKEYDOWN消息在队列里。

QS_MOUSE:WM_MOUSEMOVE消息或鼠标键消息(WM_BUTTONUP WM_RBUTTONDOWN等)在消息队列里。

QS_MOUSEBUTTON:鼠标键消息(WM_LBUTTONUP,WM_RBUTTONDOWN等)在消息队列里。

QS_MOUSEMOVE:WM_MOUSEMOVE消息在消息队列里。

QS_FAINT:WM_PAINT消息在消息队列里。

QS_POSTMESSAGE:寄送的消息(而不是其他所列消息)在队列里。

QS_SENDMESSAGE:由其他线程或应用程序发送的消息在消息队列里。

QS_TIEMR:一条WM_TIEMR消息在消息队列里。

返回值:返回值的高位字表示队列里当前消息的类型。低位字表示上次调用GetQueuestatus,GetMessage或FeekMessBge以来加入队列并仍然在队列里的消息的类型。

备注:QS_标志出现在返回值里并不保证以后调用函数GetMessage或PeekMessage会返回一个消息。GetMesssge和PeekMesssge执行某些内部过滤会导致消息被内部处理。因此,GetQueueStatus的返回值只能被看作是否调用GetMessage或PeekMessage的提示。

QS_ALLPOSTMESSAGE和QS_POSTMESSAGE标志在被清除时不一样。QS_POSTMESSAGE在调用GetMessage或 PeekMessage时清除,无论是否过滤消息。QS_ALLPOSTMESSAGE在调用GetMessage或PeekMessage时清除,不过滤消息(wMsgFilterMin和wMsgFilterMax是零)。这对于多次调用PeeKMessage来获得不同范围的消息非常有用。

速查:Windows NT:3.1及以上版本;Windows:95及以上版本:Windows CE:不支持;头文件:winuser.h;输入库:user32.lib。