【发布时间】:2010-10-20 09:47:35
【问题描述】:
在 Win32 C++ 应用程序中,我们启动一个消息循环,从队列中获取消息,翻译它们,然后分派它们。最终,每条消息都会到达我们的 WndProc,在那里可以处理相关的事件。
我理解那部分。我不明白的是中间发生的事情。具体来说:
- 不同种类的 OS 中断处理程序必须将消息放入所述“消息队列”中,但该队列驻留在进程地址空间的哪个位置?它是如何暴露给中断处理程序代码的?
- “翻译”消息是什么意思?拨打
TranslateMessage()的真正作用是什么? - 一旦由
DispatchMessage()发送,消息在到达我的 WndProc 之前会经过哪些地方(即操作系统如何处理它)?
如果有人知道以上问题的答案,请满足我的好奇心。谢谢。
【问题讨论】:
标签: windows winapi message-queue event-driven