MFC中菜单变灰的问题
MFC中菜单变灰
方法1:有UpdateCmdUI句柄时
定义一个BOOL变量m_b来标志菜单项是否有效,
该菜单项响应UPDATE_COMMAND_UI消息,在消息处理函数中pCmdUI->Enable(m_b);
以后你根据需要来设置m_b的值,就可以使菜单是否可用。
在一个函数中可以控制多个菜单
方法2:没有UpdateCmdUI句柄时
MFC中缺省的习惯是当没有UpdateCmdUI句柄时程序是使能(Enable)菜单,
菜单自动变成使能,
只要关掉缺省值就可以了,
把下面的代码加入你的程序
CMainFrm::CMainFrm { // Other stuff this->m_bAutoMenuEnable = false; }
然后在消息响应函数中添加如下代码: CMenu* m_menu = GetMenu(); CMenu* submenu = m_menu->GetSubMenu(0); submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_GRAYED); CFrameWnd::m_bAutoMenuEnable //Controls automatic enable and disable functionality for menu items. //CFrameWnd类中的BOOL型数据成员,默认为TRUE。
//如果m_bAutoMenuEnable设为TRUE,
则如果某菜单项在当前命令路径中无法找到相应的命令消息控制函数,则此时应用程序框架便禁用该菜单项,并将该菜单项设为灰色。 //如果m_bAutoMenuEnable设为FALSE,便可以禁止上叙自动禁用无控制函数菜单项的特性。
易出错不推荐使用
MFC中菜单变灰的问题的更多相关文章
- 实现JQuery EasyUI右键菜单变灰不可用效果
使用过EasyUI的朋友想必都知道疯狂秀才写的后台界面吧,作为一个初学者我不敢妄自评论它的好坏,不过它确实给我们提供了一个很好框架,只要在它的基础上进行修改,基本上都可以满足我们开发的需要. 知道“疯 ...
- EasyUI-右键菜单变灰不可用效果
使用过EasyUI的朋友想必都知道疯狂秀才写的后台界面吧,作为一个初学者我不敢妄自评论它的好坏,不过它确实给我们提供了一个很好框架,只要在它的基础上进行修改,基本上都可以满足我们开发的需要. 知道“疯 ...
- [异常解决] vmware tools 虚拟机 --> 更新/导入wmwera tools菜单变灰,无法导入问题解决
在虚拟中的装Ubuntu只要下载一个Ubuntu镜像,按照新建的指示一步一步安装 ,但是安装好之后想从原来系统中复制点东西到虚拟机中的Ubuntu中却有点麻烦.幸好Vmware自带了一个VMware ...
- CMenu类中禁用/变灰某一项
CMenu::EnableMenuItem 启用. 禁用,或变暗的菜单项. UINT EnableMenuItem( UINT nIDEnableItem, UINT nEnable); 参数 ...
- MFC中菜单的命令响应顺序
响应只可以由Doc,View,MainFrame以及APP四个类完成. 响应顺序是: 点击某菜单项,框架类最先接到菜单命令消息. 框架类把接收到得这个消息交给它的子窗口,即视图类. 视图类根据命令消息 ...
- 用EnableMenuItem不能使菜单变灰的原因
为何不能Disable菜单项 问:我有一个工具button在WM_COMMAND消息是这样做的: CMenu *pMenu = GetMenu(); pMe ...
- MFC中在基于对话框的窗体中使用CFileDialog导致菜单栏变灰的解决方案
CSDN的博客编辑器实在是难用……转战博客园 直接把CSDN发的搬过来了 ————————————————————————————我是分割线———————————————————————————— 第 ...
- eclipse中访问不了tomcat首页server Locations变灰无法编辑
eclipse中访问不了tomcat首页server Locations变灰无法编辑 2014年07月25日 14:37:21 wuha0 阅读数:19139更多 个人分类: servlet 解决 ...
- Eclipse中Tomcat v8.0 Server at localhost右键选择Properties详情页中Server Locations变灰无法编辑
Eclipse中Tomcat v8.0 Server at localhost右键选择Properties详情页中Server Locations变灰无法编辑解决办法:1.首先将Servers中部署的 ...
随机推荐
- The Swift Programming Language-官方教程精译Swift(3)基本运算符
运算符是检查, 改变, 合并值的特殊符号或短语. 例如, 加号 + 把计算两个数的和(如 let i = 1 + 2). 复杂些的运行算包括逻辑与&&(如 if enteredDoor ...
- C语言库函数大全及应用实例七
原文:C语言库函数大全及应用实例七 [编程资料]C语言库函数大全及应用实例七 函数名: getw 功 能: 从流中取一整数 用 法: int getw(FILE *strem); 程序例: #i nc ...
- thinkphp 支付宝错误 Class 'Think' not found
Class 'Think' not found D:\www\DonatePlatform\ThinkPHP\Extend\Vendor\alipay\lib\alipay_submit.class. ...
- PHP 5:PHP语法导向
原文:PHP 5:PHP语法导向 代码 ...
- android数据库升级的措辞
在基类table增加upgrade操作: public abstract class DbBaseTable { private static final String TAG = "DbB ...
- Spring Resources之介绍和资源接口
1.介绍 不幸的是Java的标准的java.net.URL类和针对不同的URL前缀的标准处理器都不够充分去访问所有的低级资源.例如,美誉标准化的URL实现可能用于去范围需要从classpath中或者相 ...
- 探秘IntelliJ IDEA 13测试版新功能——调试器显示本地变量
IntelliJ IDEA在业界被公认为最好的Java开发平台之一,JetBrains公司将在12月正式发布IntelliJ IDEA 13版本. 现在,小编将和大家一起探秘密IntelliJ IDE ...
- 安装SQL Server 2005 - 初学者系列 - 学习者系列文章
初学者阶段,建议从数据库为基础入手进行学习. 下面介绍微软的SQL Server 2005数据库的安装. 首先,从下列地址获取SQL Server 2005的安装程序. ed2k://|file|cs ...
- Libgdx Box2D现实---这缓释微丸(两:Box2D介绍)
Box2D官方网站 : http://box2d.org/ Box2D v2.1.0用户手冊翻译 : http://blog.csdn.net/complex_ok/article/catego ...
- 成C++应用程序世界------异常处理
一. 概述 C++自身有着很强的纠错能力,发展到现在,已经建立了比較完好的异常处理机制.C++的异常情况无非两种,一种是语法错误,即程序中出现了错误的语句,函数,结构和类,致使编译程序无法进行.还有一 ...