拜托各位!MFC 关于右键菜单项变灰和不可用(MF_DISABLED | MF_GRAYED)的有关问题
拜托各位!MFC 关于右键菜单项变灰和不可用(MF_DISABLED | MF_GRAYED)的问题
我创建单文档的MFC工程后(VS2010),里面有个CFileView ,FileView窗口的右键响应函数中弹出菜单
void CFileView::OnContextMenu(CWnd* pWnd, CPoint point)
{
...
...
HMENU m_hmenu= theApp.GetContextMenuManager()->GetMenuById(IDR_POPUP_EXPLORER);
EnableMenuItem(m_hmenu,ID_RENAME,MF_BYCOMMAND |MF_DISABLED | MF_GRAYED);
theApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_EXPLORER, point.x, point.y, this, TRUE);
}
其中ID_RENAME是PopupMenu菜单中的一个菜单项的Id,我想让这个菜单项变灰,并且不可用(MF_DISABLED | MF_GRAYED) 但是没有效果

如果我把ShowPopupMenu 换成 TrackPopupMenu 倒是可以变灰,但是其他菜单项也没有响应了,并且变成二级菜单了,先是弹出个“资源管理器”菜单,再出现我要的菜单
void CFileView::OnContextMenu(CWnd* pWnd, CPoint point)
{
...
...
HMENU m_hmenu= theApp.GetContextMenuManager()->GetMenuById(IDR_POPUP_EXPLORER);
EnableMenuItem(m_hmenu,ID_RENAME,MF_BYCOMMAND |MF_DISABLED | MF_GRAYED);
theApp.GetContextMenuManager()->TrackPopupMenu(m_hmenu, point.x, point.y, this, TRUE); TRUE);
}

我该怎么做?
------解决方案--------------------
IDR_POPUP_EXPLORER 资源中直接对应项设置变灰,不可用呢
------解决方案--------------------
通过调用重命名的UPDATE_COMMAND_UI的响应函数实现可用与不肯用
------解决方案--------------------
ON_UPDATE_COMMAND_UI() pCmdUI->Enable(TRUE/FALSE);
我创建单文档的MFC工程后(VS2010),里面有个CFileView ,FileView窗口的右键响应函数中弹出菜单
void CFileView::OnContextMenu(CWnd* pWnd, CPoint point)
{
...
...
HMENU m_hmenu= theApp.GetContextMenuManager()->GetMenuById(IDR_POPUP_EXPLORER);
EnableMenuItem(m_hmenu,ID_RENAME,MF_BYCOMMAND |MF_DISABLED | MF_GRAYED);
theApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_EXPLORER, point.x, point.y, this, TRUE);
}
其中ID_RENAME是PopupMenu菜单中的一个菜单项的Id,我想让这个菜单项变灰,并且不可用(MF_DISABLED | MF_GRAYED) 但是没有效果
如果我把ShowPopupMenu 换成 TrackPopupMenu 倒是可以变灰,但是其他菜单项也没有响应了,并且变成二级菜单了,先是弹出个“资源管理器”菜单,再出现我要的菜单
void CFileView::OnContextMenu(CWnd* pWnd, CPoint point)
{
...
...
HMENU m_hmenu= theApp.GetContextMenuManager()->GetMenuById(IDR_POPUP_EXPLORER);
EnableMenuItem(m_hmenu,ID_RENAME,MF_BYCOMMAND |MF_DISABLED | MF_GRAYED);
theApp.GetContextMenuManager()->TrackPopupMenu(m_hmenu, point.x, point.y, this, TRUE); TRUE);
}
我该怎么做?
MFC
Visual Studio 2010
菜单
ContextMenu
MF_DISABLED
------解决方案--------------------
IDR_POPUP_EXPLORER 资源中直接对应项设置变灰,不可用呢
------解决方案--------------------
通过调用重命名的UPDATE_COMMAND_UI的响应函数实现可用与不肯用
------解决方案--------------------
ON_UPDATE_COMMAND_UI() pCmdUI->Enable(TRUE/FALSE);