VC++深入详解读书笔记-第六章菜单
1.MFC都是采用大写字母来标识资源ID号。
2.程序中会用到多种资源,在为资源确定其ID号时,为了明确区分资源类型,一般都遵循这样一个原则:在“ID”字符串后加上一个标识资源类型的字母,例如,我们给菜单项制定的这个ID号就是在“ID”字符后加一个字母“M",表示这个是Menu,即菜单资源,光标资源(Cursor)资源,其ID号是在”ID“字符串后加一个字母”C",等等。
3.应用程序框架的MessageBox函数:AfxMessageBox
int AfxMessageBox(LPCTSTR lpszText,UINT nType = MB_OK,UINT nIDHelp = 0 );
4.Windows消息的分类
(1)标准消息
除WM_COMMAND之外,所有以WM_开头的消息都是标准消息。从CWnd派生的类,都可以接收到这类消息。
(2)命令消息
来自菜单、加速键或工具栏按钮的消息。这类消息都以WM_COMMAND形式呈现。在MFC中,通过菜单项的标识(ID)来区分不同的命令消息;在SDK中,通过消息的wParam参数来识别。从CCmdTarget派生的类,都可以接收到这类消息。
(3)通告消息
由控件产生的消息,例如按钮的单击、列表框的选择等都会产生这类消息,目的是为了向其父窗口(通常是对话框)通知事件的发生。这类消息也是以WM_COMMAND形式呈现的。从CCmdTarget派生的类,都可以接收到这类消息。
5.由于CWnd类派生于CCmdTarget,凡是从CWnd派生的类,它们既可以接收标准消息,也可以接收命令消息和通告消息。而对于那些从CCmdTarget派生的类,则只能接收命令消息和通告消息,不能接收标准消息。
6.命令消息的路由
WindowProc函数是CWnd类的一个成员函数
7.分割栏在子菜单中是占据索引位置的。
8.一个子菜单只能有一个默认菜单项。
9.在编程中,除了使用MFC自动创建的IDR_MAINFRAME菜单外,还可以自己创建一个菜单资源并加载,然后调用SetMenu函数,从而使程序的菜单变成自己定义的这个菜单。通过这种方式,可以实现动态更换程序菜单的功能。
10.在设置窗口菜单时,如果定义的是局部菜单对象,则一定要在调用SetMenu函数设置窗口菜单之后,立即调用菜单对象的Detach函数将菜单句柄与菜单对象分离。
11.UPDATE_COMMAND_UI消息的响应只能应用于菜单项,不能应用于永久显示的顶级菜单(即弹出式菜单)项目。
最新文章
- SLF4J: Class path contains multiple SLF4J bindings.
- Java-输入输出流
- [转]SQL Server表锁定原理以及如何解除锁定
- Scrum团队成立3.0
- Spring Data Jpa 详解 (配置篇)
- python3 pyqt5 和eric5配置教程
- 开源 android
- asp.net 一个简单的登录控制
- HandlerThread实现数字时钟
- Spark算子--cogroup
- [POJ2406]字符串的幂
- 高并发秒杀系统--Service事务管理与继承测试
- Git使用八:创建和切换分支
- L322
- JAVA实现加入收藏和设为首页---网摘
- 分享Memcached shell启动停止脚本
- api proxy设置 后端服务器代理
- 安装SQL SERVER 2016 CTP (二)[多图]
- 二、spring-boot-devtools热部署
- there is already 'RtController' bean method 项目报错
热门文章
- How To Learn English Very Fast
- Microsoft Anti-Cross Site Scripting Library V4.2 下载地址
- js限制textarea文本框的文字个数
- HTTPS 服务器搭建
- Android 获取网络链接类型
- ural 1572 Yekaterinozavodsk Great Well
- use ";man rsyslogd"; for details. To run rsyslog interactively, use ";rsyslogd -n";to run it in debug mo
- Java正则表达式的语法与示例
- cocos2d-x 几何绘制: DrawingPrimitives 和 CCDrawNode
- localStrorage、 sessionStorage 、cookie