VC++里怎么设置弹出式菜单部分菜单项的禁用

普通菜单项可以通过UPDATE_COMMAND_UI实现对其禁用,那弹出式菜单呢?怎么设置能使部分弹出式菜单项根据不同条件实现禁用与激活呢?万分感谢!!!UPDATE_C... 普通菜单项可以通过UPDATE_COMMAND_UI实现对其禁用,那弹出式菜单呢?怎么设置能使部分弹出式菜单项根据不同条件实现禁用与激活呢?万分感谢!!!
UPDATE_COMMAND_UI下的(我已经建好了普通菜单项
void CMysdiDoc::OnUpdateCoinSub(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if (m_nCoins<1) pCmdUI->Enable(FALSE);
else pCmdUI->Enable(TRUE);

}
然后设置了刚才普通式的弹出式(普通式的还存在)
void CMysdiView::OnContextMenu(CWnd* pWnd, CPoint point)
{
// TODO: Add your message handler code here
CMenu menuPopup;
if(menuPopup.CreatePopupMenu())
{
menuPopup.AppendMenu(MF_STRING,ID_COIN_ADD,"增加硬币\tCtrl+A");
menuPopup.AppendMenu(MF_STRING,ID_COIN_SUB,"减少硬币\tCtrl+B");
menuPopup.TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);

}
}
但是结果普通菜单项禁用了,弹出式的没有

TrackPopupMenu 具体怎么设置啊?
我是说禁用其中的某一项,弹出式菜单还是能弹出来的
展开
 我来答
etiu2009
2009-11-13 · TA获得超过968个赞
知道小有建树答主
回答量:481
采纳率:0%
帮助的人:511万
展开全部
弹出式菜单不能用 UPDATE_COMMAND_UI 的方式自动设置菜单项状态,应该在 TrackPopupMenu 的前面,根据你自己设置的条件,自行设置各菜单项的状态。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chichujn
推荐于2016-03-17 · TA获得超过663个赞
知道小有建树答主
回答量:1534
采纳率:50%
帮助的人:1108万
展开全部
是一样的. 发代码来看看。
void CMysdiDoc::OnUpdateCoinSub(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
UpdateData(TRUE);
if (m_nCoins<1) pCmdUI->Enable(FALSE);
else pCmdUI->Enable(TRUE);
UpdateData(FALSE);
}
//加断点看看m_nCoins的值是不是对.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tattackor
推荐于2016-07-22 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:897万
展开全部
1、想要的功能时 未登陆 菜单栏亮 登陆菜单栏灰吗
要改变的菜单栏添加ON_UPDATE_COMMAND_UI消息
设置一个全局变量来监听 是否登陆,当登陆就调用
menu.EnableMenuItem(ID_CHANGE,MF_DISABLED | MF_GRAYED);
2、例子:
void CMysdiDoc::OnUpdateCoinSub(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
UpdateData(TRUE);
if (m_nCoins<1) pCmdUI->Enable(FALSE);
else pCmdUI->Enable(TRUE);
UpdateData(FALSE);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式