命令传送
你使用命令的职责仅限于在命令及其处理程序函数之间建立消息映射连接,你可以使用 MFC 类向导来完成这项任务。 还必须为命令处理程序编写代码。
Windows 消息通常发送到主框架窗口中,但命令消息则传送到其他对象。 框架通过命令目标对象的标准顺序传送命令,这些对象中应包含命令的处理程序。 每个命令目标对象检查其消息映射,看看是否能处理传入的消息。
不同的命令目标类检查其自身不同时间的消息映射。 通常情况下,类将命令传送到其他某些对象,让对象首次尝试处理命令。 如果没有对象处理该命令,原始类将检查其自己的消息映射。 然后,如果它自己无法提供处理程序,则可将命令传送到更多的命令目标。 下表 标准命令传送 显示了每个类如何构成此顺序。 命令目标传送命令的一般顺序是:
到其当前活动子命令目标对象。
其自身。
到其他命令目标。
此传送机制的费用如何 相较于处理程序对命令的响应,传送的费用较低。 请记住,仅当用户与用户界面对象交互时,框架才生成命令。
标准命令传送
当此类型的对象收到命令时。 。 。 | 它给自身和其他命令目标对象一个机会以此顺序处理命令: |
---|---|
MDI 框架窗口 (CMDIFrameWnd ) |
1. 活动 CMDIChildWnd 2. 此框架窗口 3. 应用程序( CWinApp 对象) |
文档框架窗口(CFrameWnd 、CMDIChildWnd ) |
1. 活动视图 2. 此框架窗口 3. 应用程序( CWinApp 对象) |
查看 | 1. 此视图 2. 附加到视图的文档 |
文档 | 1. 此文档 2. 附加到文档的文档模板 |
对话框 | 1. 此对话框 2. 拥有对话框的窗口 3. 应用程序( CWinApp 对象) |
如果前述表第二列中带编号的项提到其他对象(例如文档),请参见第一列中相应的项。 例如,当你在第二列中看到视图将命令转发到其文档,则参阅第一列中的“文档”项了解进一步的传送。