一、菜单
1. 关键点
- 菜单系统设计的规则:菜单项文本的格式、助记符等
 
- 符号&:用来指定后面的字符是一个助记符
 
- 顶层菜单:可以是一个简单的菜单命令,也可以是下拉菜单
 
- 用菜单编辑器添加和修改菜单项
 
- CMenu类:用来处理菜单的一个MFC类
 
2. 切换应用程序菜单
 效果:在两个菜单资源间切换
 为CMainFrame类添加一个CMenu类型的成员变量m_NewMenu
 两个CMenu成员函数的妙用:Detach、LoadMenu
- Detach:使菜单对象与菜单句柄分离
 
- LoadMenu:装载菜单资源,若菜单对象的句柄已经创建,则会发生运行时错误
 
- CWnd类的成员函数SetMenu:设置应用程序的菜单
 
3. 使用键盘快捷键
 效果:为上面两个菜单(资源)定义键盘快捷键,使菜单项和快捷键联用
- 在“ResourceView选项卡”→双击Accelerator结点→双击加速键列表的最下端的空行
 
4. 菜单的编程控制
- 需求性分析:让用户自己定制菜单,所谓编程控制,即在程序中进行控制
 
- 程序运行时处理有关菜单的操作:创建菜单、装入菜单、删除菜单项、设置菜单项的状态等
 
上面的这些操作都可以用MFC菜单类CMenu来实现,举例:
- CMenu类的CreateMenu和CreatePopupMenu函数分别用来创建一个菜单或子菜单框架
 
- CMenu类的LoadMenu函数可将菜单资源装入应用程序中
 
- CMenu类的AppendMenu或InsertMenu函数可添加一些菜单项
 
- 还有许多函数,譬如重新设置应用程序菜单、删除指定的菜单项等等。
 
5. 使用快捷菜单
  快捷菜单实现函数:CMenu::TrackPopupMenu
  使用上面的函数可以创建快捷菜单
  右击会发送WM_CONTEXTMENU通知消息,故快捷菜单是通过其映射函数实现的
 
二、工具栏
第八课——菜单、工具栏和状态栏
原文:http://www.cnblogs.com/xzxl/p/7954842.html