这个部分列出了所有的消息映射宏和所有的CWnd消息映射条目及其对应的成员函数原型。
分类 | 描述 |
WM_COMMAND消息处理函数 | 处理用户菜单选择或菜单键产生的WM_COMMAND消息 |
子窗口通知消息处理函数 | 处理子窗口发出的通知消息 |
WM_消息处理函数 | 处理WM_消息,如WM_PAINT |
用户自定义消息处理函数 | 处理用户自定义消息 |
WM_COMMAND消息处理函数
映射入口 | 函数原型 |
ON_COMMAND( <id>, <memberFxn> ) | afx_msg void memberFxn( ); |
子窗口通知消息处理函数
子窗口通知消息有五个部分:
分类 | 描述 |
普通控件处理函数 | 处理通用控件通知代码 |
用户按钮处理函数 | 处理用户按钮通知代码 |
组合框处理函数 | 处理组合框通知代码 |
编辑控件处理函数 | 处理编辑控件通知代码 |
列表框处理函数 | 处理列表框通知代码 |
(本参考中使用的术语和阅读的解释参见“如何使用消息映射交叉参考”)
由于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不支持消息映射范围。你必须自己写入这些消息映射入口。
但是,消息映射是微软基础类库中很重要的一个部分。你必须理解它们的作用,类库也提供了有关文档。 <script src="http://www.codeguru.cn/public/ReferenceBottom.js"></script> <script src="showxml.js"></script>