0

我正在为一个事件循环类实现一个跨平台的“completePending”函数,它应该只解析队列中的n 个事件。(n在函数开始时被抓取,并且只解析n 个事件。)

所以我悠闲地漫步在日落中,却发现自己在 msdn 中,寻找XEventsQueued() DWORD WINAPI WinQueuedEvents(__in_opt DWORD)。但我似乎找不到一个。我开始怀疑win32 api中是否存在这样的功能!因此,我来​​到了堆栈溢出来寻找答案的编码人员的奇妙住所。

据我所知 GetMessage() 阻塞,直到收到消息。因此,如果没有 GetPending() 我应该只是偷看和获取,而有消息表明不是很好的替代方案?

4

1 回答 1

3

在您收到(仅)一条 Windows 消息之前不会阻塞的功能包括:

  • PeekMessage
  • MsgWaitForMultipleObjects
  • MsgWaitForMultipleObjectsEx

请注意,您可以通过PM_REMOVEtoPeekMessage来获得非阻塞GetMessage.

还要注意,这些函数不会返回已发送的消息,它们会立即分派。

于 2012-07-10T22:37:36.790 回答