我正在为一个事件循环类实现一个跨平台的“completePending”函数,该函数循环类应该简单地解析队列中的 n 事件。 ( n 在功能启动时被抓取,只解析 n 事件。)
所以我悠闲地漫步到夕阳中,发现自己身处msdn,寻找 XEventsQueued() DWORD WINAPI WinQueuedEvents(__ in_opt DWORD)。但我似乎找不到一个。我开始质疑win32 api中是否存在这样的函数!因此,我来到了编码器的美妙居所,这是寻求答案的堆栈溢出。
据我所知GetMessage()阻止直到收到消息。因此,如果没有GetPending(),我应该只是偷看并获取有关不良选择的消息吗?
答案 0 :(得分:3)
在获得(仅)Windows消息之前不会阻塞的函数包括:
PeekMessage
MsgWaitForMultipleObjects
MsgWaitForMultipleObjectsEx
请注意,您可以将PM_REMOVE
传递给PeekMessage
,以获得无阻塞GetMessage
。
另请注意,这些函数不会返回已发送的消息,会立即调度它们。