消息发送和接收

考虑进程的发送部分以及框架响应的方式。

大多数消息都来自用户与程序交互的结果。 命令是通过单击菜单项或工具栏按钮或者通过快捷键生成的。 用户还会通过移动或调整窗口大小来生成 Windows 消息。 当发生程序启动、终止,或窗口获得或失去焦点等事件时,会发送其他 Windows 消息。 控件通知消息由鼠标单击或其他用户与控件交互(例如对话框中的按钮或列表框控件)生成。

RunCWinApp的成员函数检索消息并将其调度到相应的窗口。 大多数命令消息都发送到应用程序的主框架窗口。 WindowProc类库预定义的机制获取消息,并根据收到的消息类别以不同的方式进行路由。

现在考虑过程的接收部分。

消息的初始接收方必须是窗口对象。 Windows 消息通常由该窗口对象直接处理。 命令消息(通常源自应用程序的主框架窗口)将路由到 命令路由中所述的命令目标链。

能够接收消息或命令的每个对象都有自己的消息映射,该映射将消息或命令与其处理程序的名称配对。

当命令目标对象收到消息或命令时,它会在其消息映射中搜索匹配项。 如果它找到消息的处理程序,则调用处理程序。 有关如何搜索消息映射的详细信息,请参阅 框架如何搜索消息映射。 请再次参阅图框架中的命令

另请参阅

框架如何调用处理程序