热情软件屋

 

请问菜单变灰了,怎样用代码变为可用


编号:QA002034
建立日期: 1999年11月15日 最后修改日期:1999年11月15日
所属类别:

linjin:
    操作系统: win98
    编程工具: VC6.0
    问题: 请问菜单变灰了,怎样用代码变为可用?

回答:

    在MFC中,一般当显示菜单时,MFC会发送消息给框架窗口。所以你可以为某个菜单项编写ON_UPDATE_COMMAND_UI消息处理函数,在其中设置是否可以使用该菜单。
    
     void CMyView::OnUpdateMenuItem(CCmdUI* pCmdUI)
     {
     pCmdUI->Enable(m_bEnabled);
     }
    如果不编写ON_UPDATE_COMMAND_UI消息处理函数,可以使用CMenu::EnableMenuItem来设置菜单可用或禁用的,但是在MFC中,要使该函数起作用,需要将CFrameWnd:: m_bAutomenuEnable设置为FALSE,如果该数据成员为TRUE(缺省值),工作框将自动地禁止没有ON_UPDATE_COMMAND_UI或者ON_COMMAND的菜单项。
    
    //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);

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio