怎么在右键菜单中设置灰化!

pw2156314 2012-10-25 08:11:58
刚学MFC,会在顶层菜单的子菜单中设置灰化,但是在右键的弹出式菜单中怎么设置灰化。
老师只教了设置右键菜单:
1。启动class wizard,在class name 栏选择类CMymenuView,在Ids栏选择CMymenuView,在message栏选择WM_CONTENTMENU,单击〔ADD FUNCTION〕,单击OK按钮后添加了此消息的消息映射函数

然后加入代码:

void CMymenuView::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: Add your message handler code here
CMenu m_popupmenu; //定义菜单对象
if(m_popupmenu.CreatePopupMenu())
{
m_popupmenu.AppendMenu(MF_STRING,ID_SHOWTEXT,"显示(&S)");
m_popupmenu.AppendMenu(MF_STRING,ID_DELETETEXT,"删除(&D)");
m_popupmenu.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
}

}



那还要在哪里加什么才能使右键菜单可以灰化
...全文
156 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2013-03-23
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
dd4979590 2012-10-26
  • 打赏
  • 举报
回复
pMenu.EnableMenuItem(ID,MF_BYCOMMAND|MF_GRAYED);
疯狂-的-蜗牛 2012-10-26
  • 打赏
  • 举报
回复
以前写的一段代码用的ModifyMenu:MF_GRAYED就是使其变灰的属性
CPoint MousePos;
GetCursorPos(&MousePos);
CMenu menu;
menu.LoadMenuW(IDR_MENU1);
SetForegroundWindow();
CMenu* pMenu=menu.GetSubMenu(0);
CMenu* ppMenu=pMenu->GetSubMenu(0);
TStreamStatus status1;
player->GetStatus(&status1);
if(!m_IsPlay)
{
ppMenu->ModifyMenuW(0,MF_BYPOSITION|MF_GRAYED,ID_32785,_T("播放"));
ppMenu->ModifyMenuW(1,MF_BYPOSITION|MF_GRAYED,ID_32783,_T("上一曲(&S)"));
ppMenu->ModifyMenuW(2,MF_BYPOSITION|MF_GRAYED,ID_32784,_T("下一曲(&N)"));
}
傻X 2012-10-25
  • 打赏
  • 举报
回复
使用ON_UPDATE_COMMAND_UI

afx_msg void OnUpdateButton1(CCmdUI *pCmdUI);

还有消息宏:

ON_UPDATE_COMMAND_UI(IDC_BUTTON1,OnUpdateButton1)

4,在函数OnUpdateButton1(CCmdUI *pCmdUI)中添加处理代码。
pCmdUI->Enable(TURE)//TRUE是开,FLASE就是灰,这里有点忘记了反正是个enable的函数

自己看下吧

15,979

社区成员

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

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