CContextMenuManager上下文菜单管理器以及为菜单添加图标
分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
在Visual Studio 2008SP1中,要弹出上下文关联菜单的话,只需要在应用程序初始化的时候调用CWinAppEx::InitContextMenuManager,然后使用CWinAppEx::GetContextMenuManager获得一个指向应用程序的上下文管理器。
如果工程是单文档/多文档的话,可能会自动关联一个右键菜单,可以在应用程序的实现文件看到类似如下代码:
void CXXXApp::PreLoadState()
{
BOOL bNameValid;
CString strName;
bNameValid = strName.LoadString(IDS_EDIT_MENU);
ASSERT(bNameValid);
GetContextMenuManager()->AddMenu(strName, IDR_POPUP_EDIT);
}
要弹出菜单的时候,只需要调用ShowPopupMenu即可。如下类似:
{
if ((pMsg->message == WM_RBUTTONDOWN))
{
CPoint point(pMsg->pt);
theApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_EDIT, point.x, point.y, this, TRUE);
return TRUE;
}
else
return CXXXForEdit::PreTranslateMessage(pMsg);
}
如果是要弹出另一个菜单资源ID的话,需要先在CXXXApp::PreLoadState()里面添加快捷菜单,如下:
{
BOOL bNameValid;
CString strName;
bNameValid = strName.LoadString(IDS_EDIT_MENU);
ASSERT(bNameValid);
GetContextMenuManager()->AddMenu(strName, IDR_POPUP_EDIT);
GetContextMenuManager()->AddMenu(_T("专门编辑"), IDR_POPUP_FOREDIT);
}
这时,才能使用下面语句调用:
要为菜单添加图标的话,要使用到CMFCToolBar::AddToolBarForImageCollection ()函数,其函数原型如下:
UINT uiResID, //Resource ID of a toolbar with images to load.
UINT uiBmpResID=0, //Resource ID of a bitmap with toolbar images.
UINT uiColdResID=0, //Resource ID of a bitmap with "cold" toolbar images.
UINT uiMenuResID=0, //Resource ID of a bitmap with menu images.
UINT uiDisabledResID=0,//Resource ID of a bitmap with disabled toolbar images.
UINT uiMenuDisabledResID=0 //Resource ID of a bitmap with disabled menu images.
);
在资源视图ToolBar插入一个ToolBar,然后创建四个工具栏对象,如下图所示:
接着四个工具栏对象的ID号要跟需要绑定到菜单项图标的ID号一致,且顺序一致。接着把预先准备好的工具栏图像位图BMP,加载到资源视图里面,修改其ID为IDB_POPUP_BITMAP,如下图所示:
然后,在初始化函数OnInitialUpdate()下添加入下代码:
运行程序就可以看到效果了,但是此时还是灰色状态,为菜单项“添加事件处理程序”,结果如下图所示:
参考资料:
1.CContextMenuManager http://msdn.microsoft.com/en-us/library/bb982387.aspx
2.CMFCToolBar::AddToolBarForImageCollection http://msdn.microsoft.com/en-us/library/bb983344%28VS.90%29.aspx
3.BCGControlBar菜单编程方法详解 http://www.evget.com/zh-CN/Info/catalog/14414.html
给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
CContextMenuManager上下文菜单管理器以及为菜单添加图标相关推荐
- 完美者右键扩展菜单管理器 1.2.1 中文绿色版
软件名称: 完美者右键扩展菜单管理器 1.2.1 中文绿色版 软件语言: 简体中文 授权方式: 免费软件 运行环境: Win7 / Vista / Win2003 / WinXP 软件大小: 590K ...
- 计算机右键菜单更换顺序,win8右键新建菜单管理:调整新建菜单顺序让右键更贴心(图文)...
系统城的小编这里要为大家带来的是关于Win8系统调整新建菜单顺序让右键更贴心的设置,大家知道,在Win8系统当中,我们会经常用到系统桌面下的右键菜单,特别是右键菜单中的新建菜单,在右键新建菜单用的如此 ...
- Excel事件触发VBA配置 - 名称管理器下拉菜单选项事件
因业务需求,不适合使用Excel的combobox捕捉事件处理.需求用数据有效性来定义下拉菜单,并当选项变更时触发事件.经学习发现,在每个表格的独立VBA代码内可以配置事件触发管理. 如图: 代码如下 ...
- 移除【此电脑】设备与管理器中的一切流氓图标~快捷方式,比如WPS网盘图标
1.Win+R快捷键打开注册表输入regedit 2.路径填入 计算机\HKEY_USERS\S-1-5-21-2836615258-4213153548-2236640551-500\SOFTWAR ...
- MFC---上下文菜单(快捷菜单)管理器
在MFC中的app类的InitInstance函数中,我们会看到这样一个函数,InitContextMenuManager,从它的字面意义可以看出是"初始化上下文菜单管理器".像这 ...
- java在菜单的布局实例_6.Java-GUI布局管理器
布局管理器 Java的GUI组件都放置在容器中,他们的位置是由容器的布局管理器来管理的.在前面的程序中,并没有指定将OK按钮放置在框架的什么位置,但是,Java知道应该把它放置在哪里,因为在后台工作的 ...
- SSM框架实现后台管理系统权限管理(用户、菜单、角色)
文章目录 后台管理系统开发 一.数据库表结构设计 1.菜单表menu 2.用户表user 3.角色表role 4.角色权限表role_menu 5.用户角色表user_role 二.项目准备 1.创建 ...
- 开源 java CMS - FreeCMS2.4 菜单管理
2019独角兽企业重金招聘Python工程师标准>>> 原文地址:http://www.javaz.cn/site/javaz/site_study/info/2015/37587. ...
- 开源 免费 java CMS - FreeCMS2.1 菜单管理
2019独角兽企业重金招聘Python工程师标准>>> 项目地址:http://www.freeteam.cn/ 菜单管理 FreeCMS在设计时定位于面向二次开发友好,所以Free ...
最新文章
- 分子偶极矩大小如何判断_润滑油粘度大小该如何判断你知道吗?
- python3 枚举定义和使用
- 有关C++多态的一些测试
- 上下文管理、线程池、redis订阅和发布
- byte数组转字符串_leetcode刷题844比较含退格的字符串(带代码解析,带知识点回顾)...
- Boost:opencv卷积的测试程序
- web项目没有run on server时..
- Linux - 用户与组
- centos 下的 PHP 的编译过程
- php怎样传数据到html代码,传递数据到PHP文件与HTML模板
- jumserver 官方文档和
- oracle中分析函数range值范围,Oracle实战4(分析函数)
- 超全!体验度量理论2021版
- 中国远程医疗行业发展前景预测和投资规划分析报告2022-2027年
- 单片机/C语言浮点型数据转换为字符串方法
- 刚刚,Google AI 部门换帅,李飞飞宣布离职!
- AM5728配置DMM_LISA_MAP修改内存工作模式
- 中鑫吉鼎|保本理财产品的优缺点分析对比
- 【Vue3】电商网站吸顶功能
- 入门python,看完这个300行代码的例子,足矣~
热门文章
- C语言,利用条件语句判断是否为三角形并输出面积
- mysql左右连接举例_MYSQL 连接举例
- 为 .net 生态贡献力量——制作并上传 nuget 包(内有独家彩蛋)
- HTML连载70-相片墙、盒子阴影和文字阴影
- 宝塔面板 nginx+apache共存 之 KVS服务器运行环境搭建过程记录
- 性能测试工具Gatling
- c语言指针官方解释_C语言中的指针解释了–它们并不像您想象的那么难
- JavaScript数组方法终极指南-地图
- css网格_CSS网格初学者指南
- 解决浏览器兼容性问题面试题_如果不解决技术面试问题,就无法解决技术多样性问题。 这是数据。...