我是 MFC 和 Windows 消息传递概念的新手。Windows消息和事件之间有什么区别或相似之处?比如当用户按下一个键或控件的关闭按钮时,它会是消息还是事件?
谢谢
当用户按下一个键或执行任何其他形式的输入时,系统会将消息放入消息队列中。然后,您的应用程序必须在其消息循环中提取这些消息,并处理它们。
许多 UI 框架会为您处理这些消息并将它们转换为事件。请注意,您谈论的事件不是 Windows 定义的任何意义上的事件。事件的使用是指在您使用的任何编程语言/框架中定义的概念。Windows 事件用于线程同步。
顶级消息循环可能如下所示:
MSG msg;
while(GetMessage(&msg, NULL, 0, 0) > 0)
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
调用DispatchMessage
导致调用窗口过程。GUI 框架通常实现该窗口过程并将消息转换为事件。
因此,执行摘要是: