上下文菜单不显示

时间:2014-09-17 15:16:45

标签: c++ mfc contextmenu

在我的应用程序中,我希望有两个上下文菜单,鼠标右键单击显示取决于点击的区域。

第一个是由编译器(visual studio 2010)IDR_POPUP_EDIT生成的。我刚刚添加了两个额外的按钮,它只是工作。第二个我想从头创建,所以我准备了IDR_PGRC菜单资源,它具有相同的属性,并有2个按钮。 如果点击框架的右侧,则应显示idr_popup_edit,否则显示idr_pgrc。

我很肯定,每次右键单击帧时都会调用OnRButtonUp和OnCOntextMenu函数,但IDR_PGRC永远不会显示。

这就是我处理上下文菜单的方式:

#ifndef SHARED_HANDLERS
theApp.GetContextMenuManager()->ShowPopupMenu(IDR_POPUP_EDIT, point.x, point.y, this, TRUE);    
DEB("ending\n");
#endif

并据此:

#ifndef SHARED_HANDLERS
theApp.GetContextMenuManager()->ShowPopupMenu(IDR_PGRC, point.x, point.y, this, TRUE);
#endif

任何人都可以向我提出任何暗示我可能做错了吗?

1 个答案:

答案 0 :(得分:1)

如果你自己创建它,你很可能应该传递HMENU hmenuPopup而不是资源ID。

(如果不是,那么请发布您的代码以创建菜单。)

因此,如果您使用CreatePopupMenu创建菜单,请将项目添加到其中,然后调用重载的ShowPopupMenu,您可以在其中传递菜单句柄(CMenu::GetSafeHMenu)。