Win32程序通常有一個消息循環迴路調用的GetMessage或的PeekMessage,然後調用在DispatchMessage分發消息到相關窗口的窗口proceedure。是否需要在win32程序中調用DispatchMessage?
但是有沒有需要實際做到這一點?我可以直接在消息循環中直接查看MSG對象,並執行那裏所需的操作,而無需致電DispatchMessage?我在談論的情況下,我有一個單一的窗口沒有其他的窗口控件,例如,如果該窗口只用作direct3d顯示窗口,所以消息將始終指向唯一的窗口。
大部分我只是好奇,但也可能導致我的代碼的某些方面更清潔。
這很有道理,謝謝! – jcoder
'DispatchMessage'和'CallWindowProc'也可以做類似考慮windows掛鉤的事情。即使只有一個窗口,你也需要使用它們。我相信有些消息不能在DispatchMessage之外正確處理,但我沒有任何例子可以解決我的問題。也許像'WM_PAINT'這樣的東西。 – tenfour
@tenfour,或許更準確地說,某些消息無論如何都會通過WindowProc調用,並且不會作爲單獨的消息存在隊列中。所以,無論如何WindowProc都是必須的。仍然可以通過這兩種方式處理隊列中發佈的內容。我想不出爲什麼要在泵的一邊處理它們。 –