Win32程序通常有一个消息循环回路调用的GetMessage或的PeekMessage,然后调用在DispatchMessage分发消息到相关窗口的窗口proceedure。是否需要在win32程序中调用DispatchMessage?
但是有没有需要实际做到这一点?我可以直接在消息循环中直接查看MSG对象,并执行那里所需的操作,而无需致电DispatchMessage?我在谈论的情况下,我有一个单一的窗口没有其他的窗口控件,例如,如果该窗口只用作direct3d显示窗口,所以消息将始终指向唯一的窗口。
大部分我只是好奇,但也可能导致我的代码的某些方面更清洁。
这很有道理,谢谢! – jcoder
'DispatchMessage'和'CallWindowProc'也可以做类似考虑windows挂钩的事情。即使只有一个窗口,你也需要使用它们。我相信有些消息不能在DispatchMessage之外正确处理,但我没有任何例子可以解决我的问题。也许像'WM_PAINT'这样的东西。 – tenfour
@tenfour,或许更准确地说,某些消息无论如何都会通过WindowProc调用,并且不会作为单独的消息存在队列中。所以,无论如何WindowProc都是必须的。仍然可以通过这两种方式处理队列中发布的内容。我想不出为什么要在泵的一边处理它们。 –