排队的事件数量? (Win32事件队列)

时间:2012-07-10 22:24:43

标签: c++ c windows winapi

我正在为一个事件循环类实现一个跨平台的“completePending”函数,该函数循环类应该简单地解析队列中的 n 事件。 ( n 在功能启动时被抓取,只解析 n 事件。)

所以我悠闲地漫步到夕阳中,发现自己身处msdn,寻找 XEventsQueued() DWORD WINAPI WinQueuedEvents(__ in_opt DWORD)。但我似乎找不到一个。我开始质疑win32 api中是否存在这样的函数!因此,我来​​到了编码器的美妙居所,这是寻求答案的堆栈溢出。

据我所知GetMessage()阻止直到收到消息。因此,如果没有GetPending(),我应该只是偷看并获取有关不良选择的消息吗?

1 个答案:

答案 0 :(得分:3)

在获得(仅)Windows消息之前不会阻塞的函数包括:

  • PeekMessage
  • MsgWaitForMultipleObjects
  • MsgWaitForMultipleObjectsEx

请注意,您可以将PM_REMOVE传递给PeekMessage,以获得无阻塞GetMessage

另请注意,这些函数不会返回已发送的消息,会立即调度它们。