C++ MFC 如何在菜单的更新函数之外将菜单有效或无效
5个回答
展开全部
void CCmdUI::Enable(BOOL bOn)
{
if (m_pMenu != NULL)
{
if (m_pSubMenu != NULL)
return; // don't change popup menus indirectly
ASSERT(m_nIndex < m_nIndexMax);
m_pMenu->EnableMenuItem(m_nIndex, MF_BYPOSITION |
(bOn ? MF_ENABLED : (MF_DISABLED | MF_GRAYED)));
}
else
{
// enable/disable a control (i.e. child window)
ASSERT(m_pOther != NULL);
// if control has the focus, move the focus before disabling
if (!bOn && (::GetFocus() == m_pOther->m_hWnd))
m_pOther->GetParent()->GetNextDlgTabItem(m_pOther)->SetFocus();
m_pOther->EnableWindow(bOn);
}
m_bEnableChanged = TRUE;
}
展开全部
你可以设置一个标志,在更新函数中检测标志再决定是否enable
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好久不写mfc细节记不得了
在窗口类里加成员变量m_flag,在菜单A响应函数里面m_flag = fase;
然后在菜单B的on-update-ui响应函数里面写if(m_flag) cmdUI->enable(TRUE)...
在窗口类里加成员变量m_flag,在菜单A响应函数里面m_flag = fase;
然后在菜单B的on-update-ui响应函数里面写if(m_flag) cmdUI->enable(TRUE)...
追问
请问只有在菜单的更新函数里才可以对菜单进行操作吗?
没有什么能够直接通过菜单ID来操作的函数吗。。。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
有函数,分析下CMenu类
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
GetDlgItem(菜单ID)->Enable=false
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询