在我的应用程序中,我希望有两个上下文菜单,鼠标右键单击显示取决于点击的区域。
第一个是由编译器(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
任何人都可以向我提出任何暗示我可能做错了吗?
答案 0 :(得分:1)
如果你自己创建它,你很可能应该传递HMENU hmenuPopup
而不是资源ID。
(如果不是,那么请发布您的代码以创建菜单。)
因此,如果您使用CreatePopupMenu
创建菜单,请将项目添加到其中,然后调用重载的ShowPopupMenu,您可以在其中传递菜单句柄(CMenu::GetSafeHMenu
)。