消息映射 (MFC)

此参考部分列出了所有消息映射宏和所有 CWnd 消息映射条目以及相应的成员函数原型:

类别 说明
ON_COMMAND 消息处理程序 处理用户菜单选择或菜单访问键生成的 WM_COMMAND 消息。
子窗口通知消息处理程序 处理子窗口中的通知消息。
WM_消息处理程序 处理 WM_ 消息,例如 WM_PAINT
用户定义的消息处理程序 处理用户定义消息。

(有关本参考中使用的术语和约定的说明,请参阅如何使用消息映射交叉引用。)

由于 Windows 是面向消息的操作系统,因此 Windows 环境的大部分编程都涉及消息处理。 每次发生按键输入或鼠标单击等事件时,都会向应用程序发送一条消息,然后必须处理该事件。

Microsoft 基础类库提供了基于消息的编程而优化的编程模型。 在此模型中,“消息映射”用于指定哪些函数将处理特定类的各种消息。 消息映射包含一个或多个宏,这些宏指定将由哪些函数处理哪些消息。 例如,包含 ON_COMMAND 宏的消息映射可能如下所示:

BEGIN_MESSAGE_MAP(CMyDoc, CDocument)
   ON_COMMAND(ID_MYCMD, &CMyDoc::OnMyCommand)
END_MESSAGE_MAP()

ON_COMMAND 宏用于处理菜单、按钮和快捷键生成的命令消息。 可用于映射以下内容:

Windows 消息

  • 控件通知

  • 用户定义消息

命令消息

  • 已注册的用户定义消息

  • 用户界面更新消息

消息范围

  • 命令

  • 更新处理程序消息

  • 控件通知

尽管消息映射宏很重要,但通常不必直接使用它们。 这是因为类向导将在你将其用于将消息处理函数与消息关联时,自动在源文件中创建时间映射条目。 每当需要编辑或添加消息映射条目时,均可使用类向导。

注意

类向导不支持消息映射范围。 必须自行编写这些消息映射条目。

但是,消息映射是 Microsoft 基础类库的重要组成部分。 你应该了解它们执行的操作,并为它们提供文档。

另请参阅

结构、样式、回调和消息映射