孙鑫MFC学习笔记6:菜单编程
1.对菜单响应的顺序:
视类,文档类,框架类,应用程序类
2.消息的分类

3.CWnd继承自CCmdTarget类,
所以从CWnd派生出的类也可以接收WM_COMMAND消息
4.命令的消息路由

5.GetMenu获取指向菜单栏的指针
6.GetSubMenu获取指向子菜单的指针
7.CheckMenuItem设置复选菜单
8.SetDefaultItem设置缺省菜单项
9.分隔栏也要计算索引位置
10.一个子菜单中只有一个菜单项作为缺省菜单
11.SetMenuItemBitmaps设置菜单项位图
12.GetSystemMetrics获取系统信息
13.EnableMenuItem设置菜单禁用(要设置m_bAutoMenuEnable=false)、
14.SetMenu设置菜单栏
要用Detach分离
15.命令更新

16.OnContextMenu、TrackPopupMenu增加右键菜单(视类)
菜单显示是以屏幕坐标为标准
17.ClientToScreen转客户区坐标为屏幕坐标
18.AppendMenu 动态增加菜单项
19.CreatePopupMenu添加一个空的弹出菜单
20.InsertMenu插入菜单
21.DeleteMenu删除菜单
22.动态增加菜单的命令响应
*1.在Resource.h中定义命令ID
*2.可将动态增加时取的ID改为命令ID宏
*3.在头文件中增加响应函数声明(格式为 afx_msg void 函数名(); )
*4.源文件中加消息映射(末尾没有分号)(格式为 消息(ID,响应函数) )
*5.在源文件中加函数实现(没有afx_msg)
23.程序中动态增加的菜单需要窗口重绘才能显示
24.DrawMenuBar菜单栏重绘(CMainFrame中)
25.Invalidate窗口重绘(用于擦除窗口临时文字)
26.Find查找字符串
27.CStringArray字符串数组(Add,GetAdd,GetSize...)
28.覆盖OnCommand截获消息
注意:要设置m_bAutoMenuEnable=false
29.LOWORD,HIWORD获取高低字节序值
30.GetActiveView获取当前视类指针
孙鑫MFC学习笔记6:菜单编程的更多相关文章
- 孙鑫MFC学习笔记14:网络编程
1.OSI 2.TCP/IP与OSI对应关系 3.Socket 4.客户机/服务器模式 5.Windows Sockets 6.套接字类型 7.面向连接的socket编程 8.面向无连接的socket ...
- 孙鑫VC学习笔记:多线程编程
孙鑫VC学习笔记:多线程编程 SkySeraph Dec 11st 2010 HQU Email:zgzhaobo@gmail.com QQ:452728574 Latest Modified ...
- 孙鑫MFC学习笔记9:状态栏与工具栏编程
1.在窗口创建之前就应该修改窗口的样式 2.单文档应用程序会把文档名作为应用程序标题,应该去掉FWS_ADDTOTITLE属性,然后修改lpszName为标题 3.在窗口创建完成后,可以通过SetWi ...
- 孙鑫MFC学习笔记8:对话框编程(下)
1.在按钮上没有字体设置,但是在对话框上有字体设置 2.让按钮进行消息响应 *1.创建按钮 *2.创建从按钮继承的类 *3.关联对象 3.属性页编程 *1.在对话框资源中新建属性页 *2.为属性页创建 ...
- 孙鑫MFC学习笔记20:Hook编程
1.HOOK拦截消息,设置越后的钩子优先级越高(钩子队列)2.SetWindowHookEx设置钩子 如果thread identifier为0或其他进程创建的线程,回调函数需要在动态链接库中声 ...
- 孙鑫MFC学习笔记7:对话框编程(上)
1.DoModal创建模态对话框 2.Create创建非模态对话框(需要用ShowWindow显示出来) 模态:对话框显示,程序会暂停,直到对话框关闭 非模态:对话框显示,程序继续执行 3.对于模态对 ...
- 孙鑫MFC学习笔记13:文档
1.CArchive类保存内存数据 2.CAchive类重载了>>与<<操作符,类似C++文件流 3.在OnNewDocument中通过SetTitle设置标题 4.字符串资源 ...
- 孙鑫MFC学习笔记12:文件读写
1.指向常量的指针 2.指针常量 3.C语言对文件操作是在缓冲区,在缓冲区满或文件关闭时写入文件 读取相同 4.fflush刷新缓冲区,使缓冲区数据写入文件 5.fseek改变文件指针偏移量 6.st ...
- 孙鑫MFC学习笔记4:MFC画图
1.画线方法 *1.捕获鼠标按下和弹起消息,获取两个点 *2.消息响应,画线 2.在CMainFrame类中的鼠标左键事件得不到响应的原因是CNameView覆盖了CMainFrame 3.注释宏 4 ...
随机推荐
- java基础 数组14
已知2个一维数组:a[]={3,4,5,6,7},b[]={1,2,3,4,5,6,7}:把数组a与数组b 对应的元素乘积再赋值给数组b,如:b[2]=a[2]*b[2]:最后输出数组b的元素.
- Netty权威指南
Netty权威指南(异步非阻塞通信领域的经典之作,国内首本深入剖析Netty的著作,全面系统讲解原理.实战和源码,带你完美进阶Netty工程师.) 李林锋 著 ISBN 978-7-121-233 ...
- rabbitmq消息队列——"路由"
在之前的教程中,我们创建了一个简单的日志系统.我们能够向许多交换器转发日志消息. 在本教程中,我们将添加一个功能--我们让它仅仅接收我们感兴趣的日志类别.举例:我们 实现仅将严重级别的错误日志写入磁盘 ...
- IBM appscan 9.0破解版分享
简介:IBM AppScan该产品是一个领先的 Web 应用安全测试工具,曾以 Watchfire AppScan 的名称享誉业界.Rational AppScan 可自动化 Web 应用的安全漏洞评 ...
- Unity3D Editor模式下批量修改prefab
最经遇到一个需要批量修改已经做好的prefab的问题,查了一些资料最终实现了但是还是不够完美,通过学习也发现unity的编辑器功能还是非常强大的.废话不多说直接上代码: [ExecuteInEditM ...
- 贪心算法-最小生成树Kruskal算法和Prim算法
Kruskal算法: 不断地选择未被选中的边中权重最轻且不会形成环的一条. 简单的理解: 不停地循环,每一次都寻找两个顶点,这两个顶点不在同一个真子集里,且边上的权值最小. 把找到的这两个顶点联合起来 ...
- CSS伪类与CSS伪元素的区别及由来
关于两者的区别,其实是很古老的问题.但是时至今日,由于各种网络误传以及一些不负责任的书籍误笔,仍然有相当多的人将伪类与伪元素混为一谈,甚至不乏很多CSS老手.早些年刚入行的时候,我自己也被深深误导,因 ...
- 如何用Python寻找重复文件并删除
在实际生活中,经常会有文件重复的困扰,即同一个文件可能既在A目录中,又在B目录中,更可恶的是,即便是同一个文件,文件名可能还不一样.在文件较少的情况下,该类情况还比较容易处理,最不济就是one by ...
- Example of ApplicationContextAware in Spring--转
原文地址:http://www.concretepage.com/spring/example_applicationcontextaware_spring In spring we can get ...
- js每天进步一点点3
JS之样式的改变
用