MFC中维护菜单状态的两种方法

原创 2006年05月30日 13:23:00

    MFC中维护菜单状态一般是通过UPDATE_COMMAND_UI消息。那些还没有添加消息响应的UI都默认为灰色。而SDK程序中,改变菜单状态时,可以调用EnableMenuItem( UINT nIDEnableItem, UINT nEnable )函数。

    本来我在程序中,不想添加太多的消息映射,而直接使用EnableMenuItem函数,结果行不通。通过查询了一些菜单编程的知识,发现这个m_bAutoMenuEnable成员函数。它是CFrameWnd类的public成员函数,默认为TRUE。正是因为它的存在,而使得那些没有添加消息的UI都为灰色。

如果想在MFC中使用EnableMenuItem函数,必须需要对程序进行一点改动。

    //Disable MFC from automatically disabling menu items. 
    m_bAuoMenuEnable=FALSE; 
    //Now enable the menu item. 
    CMenu* pMenu=GetMenu (); 
    ASSERT_VALID (pMenu); 
    pMenu->EnableMenuItem (ID_MENU_ITEM,MF_BYCOMMAND | MF_ENABLED); 

版权声明:本文为博主原创文章,未经博主允许不得转载。

MFC 遍历菜单项 获取状态 改变状态

// 遍历菜单 void CTestDlg::OnBnClickedButton2() { CMenu* cMenuMain = GetMenu(); int cntMain = cMenuMai...
  • Jingle912
  • Jingle912
  • 2017年05月17日 10:25
  • 434

MFC中菜单项状态的切换

MFC中的菜单项中左边可以有一个是否选中的状态,注意不是让菜单项变灰,而是在菜单项左边出现一个钩,要实现这个效果,需要进行下面这几步操作。 1.首先在菜单项的资源文件中将属性Checked置为true...
  • u012501459
  • u012501459
  • 2014年01月06日 14:53
  • 1495

VS2010/MFC编程入门之三十五(菜单:菜单及CMenu类的使用)

鸡啄米在上一节中讲的是VS2010的菜单资源,本节主要讲菜单及CMenu类的使用。        CMenu类的主要成员函数        MFC为菜单的操作提供了CMenu类,下面鸡啄米就常...
  • my_lord_
  • my_lord_
  • 2016年09月01日 15:44
  • 1140

MFC如何获得线程的状态的方法

如何获得线程的状态的方法不管是Windows API还是MFC的CWinThread类都没有给出直接获得线程状态的接口或函数。线程的状态分为正在执行、挂起、已经结束三种。利用API函数GetExitC...
  • Tonny_007
  • Tonny_007
  • 2014年03月18日 14:18
  • 1224

MFC中为菜单命令添加快捷键

(1)添加“帮助/我的帮助”菜单项。ID为ID_MY_HELP,Caption为“我的帮助(&H)”,设 Ctrl+H作为该命令的快捷键。 当执行Ctrl+H命令时,使用一个信息对话框...
  • ywxk1314
  • ywxk1314
  • 2016年06月24日 10:29
  • 1938

MFC添加右键菜单

学习MFC刚开始,第一件事就是学习右键菜单 右键弹出菜单    为什么想写右键菜单,其实MFC右键菜单并不难,但是比较恶心。在一次做项目的过程中使用了OnRButtonUp这个事件来触发...
  • tianbo77
  • tianbo77
  • 2015年03月24日 22:39
  • 1918

MFC中教你怎么编写弹出式菜单

在VS2008中,不能像VC++6.0那样通过Compnents and Controls来自动添加弹出式菜单,需要手动添加。可以采用两种方式创建弹出式菜单。 一、利用现有的菜单资源创建 (1)首...
  • jiadabin
  • jiadabin
  • 2014年03月31日 18:27
  • 1952

基于MFC对话框程序中添加菜单栏 (CMenu)

From:http://lishiqiang1988.blog.163.com/blog/static/41147912201382104631547/   VS2010的MFC对话框程序中添加...
  • apxar
  • apxar
  • 2013年10月13日 23:59
  • 32747

MFC中向对话框中添加菜单栏方法

在MFC中一般基于对话框的MFC界面是没有菜单栏的,基于文档视图结构的MFC界面是有菜单栏的,那么怎么在基于对话框的MFC界面中添加菜单栏。下面是基于网上的博客啥的自己整理的。**一、在资源视图中将m...
  • u012273127
  • u012273127
  • 2017年05月06日 20:11
  • 3226

VS2010/MFC编程入门之三十四(菜单:VS2010菜单资源详解)

上一节讲了标签控件Tab Control以后,常用控件的内容就全部讲完了,当然并没有包括所有控件,主要是一些很常用很重要的控件。本节开始鸡啄米将为大家讲解菜单的概念及使用。        菜单简...
  • my_lord_
  • my_lord_
  • 2016年09月01日 15:41
  • 1093
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC中维护菜单状态的两种方法
举报原因:
原因补充:

(最多只允许输入30个字)