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