//--
1. 在菜单上加个子菜单TEST,然后在CMainFrame,CMenuApp,CMenuDoc,CMenuView这4个类中都添加响应WM_COMMAND命令消息的OnTest函数
测试表明
(1) 只会有一个OnTest能响应
(2)响应优先级 ,类的顺序是 CMenuView ---> CMenuDoc --->CMainFrame ---> CMenuApp,
意思是: CMenuView有OnTest()函数时,就它能响应,其他的都不会响应; 删除 CMenuView中的OnTest(),就只有CMenuDoc中的OnTest响应,其他的都不会响应.
2 Pop-up菜单项 也就是顶层的"文件","编辑","查看","帮助" 都设置为Pop-up,不能响应COMMAND消息; TEST没有设置为Pop-up,是可以响应COMMAND命令消息的.
3. CWnd与CCmdTarget
(1) CWnd是CCmdTarget的派生类; CCmdTarget是父类,CWnd是子类
(2) 在MFC类层次结构图中, CCmdTarget下面派生出的类只能响应COMMAND命令消息
(3) CWnd下面派生出的类 既可以响应COMMAND命令消息也可以响应其他标准消息.
4 COMMAND消息路由 :
MainFrame ----> View ---> Doc
App <--- MainFrame <---View <---Doc
5. 菜单的结构,子菜单的概念6. GetMenu()->GetSubMenu(0),CheckMenuItem,SetDefaultItem等函数的调用......含有MenuItem 肯定是针对 子菜单项
//---
//---
//--
//
//------ 子菜单项勾选函数CheckMenuItem
//MenuItem:菜单项就是子菜单下面的各个选项,如"新建","打开","保存"等等.
// GetMenu()->GetSubMenu(0)->CheckMenuItem(0,MF_BYPOSITION|MF_CHECKED);通过索引0访问"新建"菜单项MenuIte