许多年前,我了解到,要使用GetMessage,您需要某种形式的GUI。
没有它,Windows不会创建消息队列。

我教错了吗?

编辑:
MSDN说:因为系统将消息定向到应用程序中的各个窗口,所以线程必须在开始其消息循环之前至少创建一个窗口。

看来我教得不错,还是还有?

最佳答案

您在这里有些困惑。

首先,您可以使用GetMessage而无需在线程中创建 Activity 窗口。

OTOH默认情况下,操作系统不会为新创建的线程创建消息队列。因此-对新创建的线程的PostThreadMessage之类的调用可能会失败。

要强制创建消息队列,您需要从该线程调用应该在此线程的队列上运行的任何函数。

简单来说,只需在该线程中调用PeekMessage

更多信息在这里:
http://msdn.microsoft.com/en-us/library/ms644946%28v=vs.85%29.aspx

(见备注)

关于windows - GetMessage是否需要GUI,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4509521/

10-10 13:32