许多年前,我了解到,要使用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/