如何让菜单中一个指定的菜单项灰掉?不可用? 如何让菜单中一个指定的菜单项灰掉?不可用?上次问了让整个菜单灰掉,我使用相同的模式去控制单个的菜单项,但是不可以,而且,在Command_UI中控制的话,菜单只是不可用,不是显示的会掉。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果在VIEW中实现的话,注意需要将CFrameWnd:: m_bAutomenuEnable设置为FALSE,如果该数据成员为TRUE(缺省值),工作框将自动地禁止没有ON_UPDATE_COMMAND_UI或者ON_COMMAND的菜单项。 你可以这样做,下面的代码是在VIEW中实现的。#include "MainFrm.h"菜单有两个子项ID_1,ID_2:void CMy11View::On1() { // TODO: Add your command handler code here CMainFrame *pFrame=(CMainFrame *)AfxGetApp()->GetMainWnd(); pFrame->m_bAutoMenuEnable=FALSE; CMenu* pMenu=AfxGetApp()->GetMainWnd()->GetMenu(); ASSERT_VALID (pMenu); pMenu->EnableMenuItem(ID_2,TRUE);//ID_2是你要修改的菜单的ID} 正常情况下,在CN_UPDATE_COMMAND_UI的时候,让((CCmdUI *) pExtra)->Enable(FALSE);就可以灰掉 同意楼上的不过应该是ON_UPDATE_COMMAND_UI CMenu *pMenu = GetMenu(); CMenu *pSubMenu = pMenu->GetSubMenu(0); pSubMenu->EnableMenuItem(ID_POPUP1, MF_BYCOMMAND|MF_DISABLED|MF_GRAYED); 響應ON_UPDATE_COMMAND_UI消息pCmdUI->Enable(FALSE) 这个问题好象刚回答过一次使菜单灰掉(CFrameWnd *)AfxGetMainWnd())->GetMenu()->EnableMenuItem(ID_ADDLIST,MF_GRAYED);//使菜单不可用//ID_ADDLIST是你指定菜单项(CFrameWnd *)AfxGetMainWnd())->GetMenu()->EnableMenuItem(ID_ADDLIST,MF_DISABLED);使菜单可用(CFrameWnd *)AfxGetMainWnd())->GetMenu()->EnableMenuItem(ID_ADDLIST,MF_ENABLED); 你看看你vb的ado的activeconnection对象的游标是否是client端 记录集再次打开的问题 请问,多文档程序中,每个view窗口的左上角的图标都是系统默认,我如何自定义自己的图标,让新建的每个view左上角图标不同? 动态改变按钮的的文字颜色?? tab控件的问题 一段关于CListCtrl的代码,问题出现在哪里? 请问VC中如何改变用户坐标系的坐标刻度? msdn问题 COleDateTime::GetCurrentTime()一用就出错 怎么发送消息让指定窗口移动? 请大家谈谈对于《深度探索C++对象模型》这本书的看法。 检索记录出错 50分请教 一个关于多线程多用户的网络编程的问题
你可以这样做,下面的代码是在VIEW中实现的。
#include "MainFrm.h"菜单有两个子项ID_1,ID_2:
void CMy11View::On1()
{
// TODO: Add your command handler code here
CMainFrame *pFrame=(CMainFrame *)AfxGetApp()->GetMainWnd();
pFrame->m_bAutoMenuEnable=FALSE;
CMenu* pMenu=AfxGetApp()->GetMainWnd()->GetMenu();
ASSERT_VALID (pMenu);
pMenu->EnableMenuItem(ID_2,TRUE);//ID_2是你要修改的菜单的ID
}
CMenu *pSubMenu = pMenu->GetSubMenu(0);
pSubMenu->EnableMenuItem(ID_POPUP1, MF_BYCOMMAND|MF_DISABLED|MF_GRAYED);
使菜单灰掉(
CFrameWnd *)AfxGetMainWnd())->GetMenu()->EnableMenuItem(ID_ADDLIST,MF_GRAYED);//
使菜单不可用//ID_ADDLIST是你指定菜单项
(CFrameWnd *)AfxGetMainWnd())->GetMenu()->EnableMenuItem(ID_ADDLIST,MF_DISABLED);
使菜单可用
(CFrameWnd *)AfxGetMainWnd())->GetMenu()->EnableMenuItem(ID_ADDLIST,MF_ENABLED);