这段代码为什么不能将菜单变灰???

liang13144 2001-11-22 07:43:07
void CMainFrame::OnMenuitem32773()
{
// TODO: Add your command handler code here
CMenu* pMenu = GetMenu();
int i = pMenu->GetMenuItemCount();
CMenu* pSubMenu = pMenu->GetSubMenu(4);
i = pSubMenu->GetMenuItemCount();
i = pSubMenu->EnableMenuItem(1,MF_BYPOSITION | MF_GRAYED );
}
...全文
202 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
stevenW 2001-11-22
  • 打赏
  • 举报
回复
不用加MF_DISABLED
0.
增加自己的菜单
1.

CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
m_bAutoMenuEnable =FALSE;
}
2.
void CMainFrame::OnTest()
{
// TODO: Add your command handler code here

CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(4);
submenu->EnableMenuItem(ID_TEST, MF_BYCOMMAND | MF_GRAYED);


}
liang13144 2001-11-22
  • 打赏
  • 举报
回复
怎么给你分呀???我搞好了
多谢
就卡在那个m_bAutoMenuEnable变量上了
alphagx 2001-11-22
  • 打赏
  • 举报
回复
MF_BYCOMMAND ¦ MF_DISABLED ¦ MF_GRAYED;

你忘记加MF_DISABLED!!
stevenW 2001-11-22
  • 打赏
  • 举报
回复
1.在CMainFrame的构造函数里bAutoMenuEnable =FALSE
2.CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND ¦ MF_DISABLED ¦ MF_GRAYED);
3.ok了give me scores
liang13144 2001-11-22
  • 打赏
  • 举报
回复
我先
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
this->m_bAutoMenuEnable = FALSE;
}
然后
void CMainFrame::OnMenuitem32773()
{
// TODO: Add your command handler code here
CMenu* pMenu = GetMenu();
int i = pMenu->GetMenuItemCount();
CMenu* pSubMenu = pMenu->GetSubMenu(4);
i = pSubMenu->GetMenuItemCount();
i = pSubMenu->EnableMenuItem(1,MF_BYPOSITION ¦ MF_GRAYED );
}
还是不能将自己添加的菜单变灰呀
alphagx 2001-11-22
  • 打赏
  • 举报
回复
你是让主菜单的第五个子菜单下面第二个子菜单无效吗??
liang13144 2001-11-22
  • 打赏
  • 举报
回复
还是 不行呀 !!!!!
stevenW 2001-11-22
  • 打赏
  • 举报
回复
楼上兄弟说的很正确
alphagx 2001-11-22
  • 打赏
  • 举报
回复
m_bAutoMenuEnable 是CFrameWnd
的成员变量,
而CMainFrame是从CFrameWnd派生的。
alphagx 2001-11-22
  • 打赏
  • 举报
回复
你可以看一下MSDN中
CMenu::EnableMenuItem你就知道了,
// The code fragment below shows how to disable (and gray out) the
// File\New menu item.
// NOTE: m_bAutoMenuEnable is set to FALSE in the constructor of
// CMainFrame so no ON_UPDATE_COMMAND_UI or ON_COMMAND handlers are
// needed, and CMenu::EnableMenuItem() will work as expected.

CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);

liang13144 2001-11-22
  • 打赏
  • 举报
回复
在说明白点啊,bAutoMenuEnable 不是成员变量呀
alphagx 2001-11-22
  • 打赏
  • 举报
回复
在CMainFrame 初始化时,把
bAutoMenuEnable =FALSE
liang13144 2001-11-22
  • 打赏
  • 举报
回复
helping !!!!!!!
liang13144 2001-11-22
  • 打赏
  • 举报
回复
还是不行呀!!!!!!
alphagx 2001-11-22
  • 打赏
  • 举报
回复
再加一个 MF_DISABLED

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧