消息映射

这个部分列出了所有的消息映射宏和所有的CWnd消息映射条目及其对应的成员函数原型。
分类描述
WM_COMMAND消息处理函数处理用户菜单选择或菜单键产生的WM_COMMAND消息
子窗口通知消息处理函数处理子窗口发出的通知消息
WM_消息处理函数处理WM_消息,如WM_PAINT
用户自定义消息处理函数处理用户自定义消息

(本参考中使用的术语和阅读的解释参见“如何使用消息映射交叉参考”)

由于Windows是一个面向消息的操作系统,在Windows环境下很大一部分编程工作涉及消息处理。每当发生一个事件,如击键或鼠标点击,就会向应用程序发送一个消息,然后由它来处理事件。
微软基础类库提供了为基于消息的编程而优化的编程模式。在这种模式下,“消息映射”被用于指明哪个函数将为特定的类处理不同的消息。消息映射包含了一个或多个宏,用以指定哪个函数处理哪个消息。例如,一个包含ON_COMMAND宏的消息映射看起来可能象这样:
BEGIN_MESSAGE_MAP( CMyDoc, CDocument )
  //{{AFX_MSG_MAP( CMyDoc )
  ON_COMMAND( ID_MYCMD, OnMyCommand )
  // ...其它入口,用于处理另外的消息
  //}}AFX_MSG_MAP
END_MESSAGE_MAP( )
ON_COMMAND宏被用于处理菜单、按钮和加速键产生的命令消息。可以用宏来映射下列消息:

Windows消息
·控件通知
·用户自定义消息

命令消息
·注册的用户自定义消息
·用户界面更新消息

消息范围
·命令
·更新处理消息
·控件通知

尽管消息映射宏很重要,通常你并不需要直接使用它们。这是因为当你用ClassWizard把消息处理函数与消息关联在一起的时候,它将会在源文件中自动创建消息映射入口。不论何时你希望编辑或加入消息映射条目,你都可以使用ClassWizard。
注意:ClassWizard不支持消息映射范围。你必须自己写入这些消息映射入口。
但是,消息映射是微软基础类库中很重要的一个部分。你必须理解它们的作用,类库也提供了有关文档。