MFC对话框 菜单项 禁用与启用

51 篇文章 3 订阅
12 篇文章 0 订阅

参考文章:http://blog.csdn.net/johnnyhu90/article/details/9623207

如果添加菜单,这里就不说了,说下如何禁用、启用菜单,
网上说的都是单文档程序的多,在对话框程序无效哈。


1. VS2010菜单栏-->项目-->类向导-->打开类向导对话框
类名:选择我们菜单所在的对话框类,如CXxxDlg
消息:输入WM_INITMENUPOPUP,为其添加处理函数
如我的WM_INITMENUPOPUP消息处理函数代码为:
void CCnFiddlerDlg::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)
{
CDialogEx::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);


// TODO: 在此处添加消息处理程序代码


if(!bSysMenu && pPopupMenu)
{
CCmdUI cmdUI;
cmdUI.m_pOther = NULL;
cmdUI.m_pMenu = pPopupMenu;
cmdUI.m_pSubMenu = NULL;


UINT count = pPopupMenu->GetMenuItemCount();
cmdUI.m_nIndexMax = count;
for(UINT i=0; i<count; i++)
{
UINT nID = pPopupMenu->GetMenuItemID(i);
if(-1 == nID || 0 == nID)
{
continue;
}
cmdUI.m_nID = nID;
cmdUI.m_nIndex = i;
cmdUI.DoUpdate(this, FALSE);
}



}


2. VS2010菜单栏-->项目-->类向导-->打开类向导对话框
在命令选择卡:选中我们的菜单ID编号
然后在右边的消息中选中:UPDATE_COMMAND_UI
最后点“添加处理程序”为其添加响应函数。
如我的响应函数为:
void CXxxDlg::OnUpdateCaptureHttpStart(CCmdUI *pCmdUI)
{
if (m_bIsEnabeMenuStart)
{
pCmdUI->Enable(TRUE); // 启用菜单

else
{
pCmdUI->Enable(FALSE); // 禁用菜单
}

}










评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

friendan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值