消息发送和接收

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

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

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

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

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

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

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

另请参阅

框架如何调用处理程序