MFC笔记——消息响应

来源:互联网 发布:地理信息大数据 编辑:程序博客网 时间:2024/04/30 18:13

在Menu中为同一个消息添加四个消息响应函数,则响应次序为:视类,文档类,架构类,应用程序。

 Menu命令消息路由的具体过程:当点击某菜单项是,最先接收到这个菜单命令消息的是架构类。架构类将把接收到的这个消息借给它的子窗口,即视类,由视类首先进行处理。视类首先根据命令消息映射机制查找自身是否对此消息进行了响应,如果响应了,就调用相应响应函数对这个消息进行处理,消息路由过程结束;如果视类没有对此命令消息做出响应,就交由文档类,文档类同样查找自身是否对这个菜单进行了响应,如果响应了,就由文档类的命令消息响应函数尽享处理,路由过程结束。如果文档类也未作出响应,就把这个命令消息交还给视类,后者又把该消息交还给架构类。架构类查看自己是否对这个命令消息进行了响应,如果它也没有做出响应,就把这个菜单命令消息交给应用程序类,由后者来进行处理。

 

添加一个消息响应函数以后,在源代码中有三个改动:

①在类的声明中,有详细响应函数的声明 行如:afx_msg void OnTest();

②在类的实现中,有详细映射关系的实现。

位于BEGIN_MESSAGE_MAP(TheClass, BaseClass)和END_MESSAGE_MAP()。

形如:

ON_WM_CREATE()

ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)

③在响应消息的类的实现中,有消息响应函数的实现。即void OnTest()的实现部分。

原创粉丝点击