邮件类别

为以下三个主要类别编写处理程序的消息类型:

  1. Windows 消息

    这主要包括以 WM_ 前缀开头的消息,WM_COMMAND除外。 Windows 消息由窗口和视图处理。 这些消息通常具有用于确定如何处理消息的参数。

  2. 控制通知

    这包括从控件和其他子窗口到其父窗口的通知消息WM_COMMAND。 例如,编辑控件在用户执行了可能更改编辑控件中的文本的作时,向其发送一条包含EN_CHANGE控件通知代码的WM_COMMAND消息。 消息的窗口处理程序以某种适当的方式响应通知消息,例如检索控件中的文本。

    框架将控制通知消息路由为其他 WM_ 消息。 但是,一个例外是当用户单击按钮时由按钮发送的BN_CLICKED控制通知消息。 此消息特别被视为命令消息,并像其他命令一样路由。

  3. 命令消息

    这包括来自用户界面对象的WM_COMMAND通知消息:菜单、工具栏按钮和快捷键。 如 命令目标中所述,框架处理命令的方式与其他消息不同,并且可以由更多类型的对象处理。

Windows 消息和 Control-Notification 消息

类别 1 和 2 中的消息(Windows 消息和控制通知)由窗口处理:派生自类的类 CWnd的对象。 这包括 CFrameWndCMDIFrameWndCMDIChildWndCViewCDialog你自己的派生自这些基类的类。 此类对象封装 Windows 窗口的句 HWND柄。

命令消息

类别 3 中的消息(命令)可以由更广泛的对象处理:文档、文档模板和应用程序对象本身,以及窗口和视图。 当命令直接影响某些特定对象时,让该对象处理该命令是有意义的。 例如,“文件”菜单上的“打开”命令在逻辑上与应用程序关联:应用程序在收到命令时打开指定的文档。 因此,Open 命令的处理程序是应用程序类的成员函数。 有关命令以及如何将命令路由到对象的详细信息,请参阅 框架如何调用处理程序

另请参阅

框架中的消息和命令