求助:对于 屏蔽 右键弹出菜单 中某命令

pipihj 2006-05-18 02:41:01
对于屏蔽右键弹出菜单中某命令我有些疑问想请教。

void CDrawCoinView::OnContextMenu(CWnd* pWnd, CPoint point) { CMenu menuPopup;
CDrawCoinDoc *pDoc=GetDocument();
if (menuPopup.CreatePopupMenu())
{ menuPopup.AppendMenu(MF_STRING,ID_COIN_ADD,"增加硬币\t CTRL+A");
menuPopup.AppendMenu(MF_STRING,ID_COIN_SUB,"减少硬币\t CTRL+B");
menuPopup.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this); } ASSERT_VALID(pDoc); if(pDoc->m_nCoins<1) menuPopup.EnableMenuItem (ID_COIN_SUB,MF_BYCOMMAND|MF_DISABLED|MF_GRAYED); menuPopup.EnableMenuItem (ID_COIN_ADD,MF_BYCOMMAND|MF_ENABLED); }

这是实现点击右键弹出菜单增加或减少硬币。但是,当没有硬币(m_nCoins<1,m_nCoins为硬币的总数)时,我想让菜单“减少硬币(ID_COIN_SUB)”不可用。我已经在CMainFrame中定义公共变量BOOL m_bAutoMenuEnable;并且在构造函数让其为FALSE。但是弹出式菜单2个菜单项依然可用。。。请问我遗漏了某些细节么。。
...全文
122 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
swimmingfish2004 2006-05-18
  • 打赏
  • 举报
回复
写错了 是menuPopup.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);放到EnableMenuItem之后去
swimmingfish2004 2006-05-18
  • 打赏
  • 举报
回复
menuPopup.AppendMenu(MF_STRING,ID_COIN_ADD,"增加硬币\t CTRL+A");
放到EnableMenuItem之后执行
cpio 2006-05-18
  • 打赏
  • 举报
回复
菜单有这个东西:ON_UPDATE_COMMAND_UI

通过菜单的类向导可以添加,在里面设置菜单状态

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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