字体
第(4/4)页
关灯
   存书签 书架管理 返回目录
包含该消息的处理函数的对象时,

    则处理该消息,然后中断传递过程,不再搜索后续的对象。

    由于命令消息可以被多种类的对象处理,因此命令消息的传递路径比较复杂,但总体思

    想是由子窗口到父窗口,由窗口到文档。下面举一个简单的例子。

    假设是一个多文档MDI 应用程序,用户触发了“编辑”菜单下的“粘贴”菜单项的命令

    消息,此时消息依照以下顺序传递。

    (1)MDI 主框架窗口首先收到此命令消息。

    (2)主框架将处理命令的机会先让给其当前活动的MDI 子框架窗口。

    (3)子框架窗口又将处理该命令的机会让给其活动的视图。

    (4)视图先搜索自己的消息映shè,寻找对应的处理函数,如果没找到,则将消息传递给

    与其关联的文档,找到则调用并中止传递过程。

    (5)文档搜索自己的消息映shè,寻找对应的处理函数。一般情况下文档中包含“粘贴”

    消息的处理函数,调用该处理函数完成粘贴功能。如果没有找到,文档将消息传递给文档模

    板。

    (6)文档模板进行相同的过程,如果没找到,将消息传递回子框架窗口。

    (7)子框架窗口搜索对应的处理函数,如果没找到,则将消息传回MDI 主框架窗口。

    (8)如果主框架窗口中也没找到,则消息最后停留在应用对象,不再进行进一步的传递。

    从上面的叙述可以看出,命令消息的传递过程很复杂。然而一般情况下不需要了解这么

    详细的消息传递路径,只需根据完成功能的要求,在相应的类中添加实现代码,就不会产生

    冲突,比如例子中提到的粘贴功能,一般就是由文档完成的,因此只需在文档类中添加这个

    命令消息的处理函数,而不必在别的类中添加与

    松语文学免费小说阅读_www.16sy.com
上一页 目录 下一章