如何使EnableMenuItem函数的调用有效
2009-09-08 15:20
260 查看
转自:http://blog.csdn.net/luckysolar/archive/2007/01/02/1472401.aspx
在MFC环境下Menu的修改在默认的情况下是通过CCmdUI来改变的, 调用EnableMenuItem函数无效(不管是全局API还是 CMenu类的成员函数).但是只要修改CFrameWnd类的一个成员变量m_bAutoMenuEnable就可以使调用的函数有效. m_bAutoMenuEnable在默认情况下是TRUE,如果需要EnableMenuItem函数调用有效需将其赋值为FALSE.如下:
m_bAutoMenuEnable=FALSE; //关键部分
if(m_bUserMenu1)
{
//GetMenu()->GetSubMenu(4)->EnableMenuItem(IDM_USER_MENU2, MF_ENABLED| MF_BYCOMMAND);
::EnableMenuItem(m_hMenuDefault,IDM_USER_MENU2,MF_ENABLED| MF_BYCOMMAND);
}
else
{
//GetMenu()->GetSubMenu(4)->EnableMenuItem(IDM_USER_MENU2, MF_DISABLED|MF_GRAYED| MF_BYCOMMAND);
::EnableMenuItem(m_hMenuDefault,IDM_USER_MENU2,MF_DISABLED|MF_GRAYED| MF_BYCOMMAND);
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lyl_98/archive/2007/02/09/1505956.aspx
在MFC环境下Menu的修改在默认的情况下是通过CCmdUI来改变的, 调用EnableMenuItem函数无效(不管是全局API还是 CMenu类的成员函数).但是只要修改CFrameWnd类的一个成员变量m_bAutoMenuEnable就可以使调用的函数有效. m_bAutoMenuEnable在默认情况下是TRUE,如果需要EnableMenuItem函数调用有效需将其赋值为FALSE.如下:
m_bAutoMenuEnable=FALSE; //关键部分
if(m_bUserMenu1)
{
//GetMenu()->GetSubMenu(4)->EnableMenuItem(IDM_USER_MENU2, MF_ENABLED| MF_BYCOMMAND);
::EnableMenuItem(m_hMenuDefault,IDM_USER_MENU2,MF_ENABLED| MF_BYCOMMAND);
}
else
{
//GetMenu()->GetSubMenu(4)->EnableMenuItem(IDM_USER_MENU2, MF_DISABLED|MF_GRAYED| MF_BYCOMMAND);
::EnableMenuItem(m_hMenuDefault,IDM_USER_MENU2,MF_DISABLED|MF_GRAYED| MF_BYCOMMAND);
}
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/lyl_98/archive/2007/02/09/1505956.aspx
相关文章推荐
- 如何使EnableMenuItem函数的调用有效
- 网页如何有效调用exe
- 网页如何有效调用exe
- 如何有效解决C与C++的相互调用问题
- 网页如何有效调用exe
- 网页如何有效调用exe
- 如何有效解决C与C++的相互调用问题
- 网页如何有效调用exe
- 网页如何有效调用exe
- 如何有效解决C与C++的相互调用问题
- 如何使EnableMenuItem函数的调用有效
- 如何使EnableMenuItem函数的调用有效
- 如何使EnableMenuItem函数的调用有效
- (转)如何有效解决C与C++的相互调用问题
- 网页如何有效调用exe
- 如何使EnableMenuItem函数的调用有效
- 如何有效解决C与C++的相互调用问题
- 网页如何有效调用exe
- 网页如何有效调用exe
- 如何有效解决C与C++的相互调用问题